Что нового

[Данные, строки] Привязка к hard с помощью файла ini

hahasi45

Новичок
Сообщения
18
Репутация
1
Вот скрипт
Код:
_ValidateSerial()

Func _ValidateSerial()

    Local $Serial, $Temp = @TempDir & '\~snzrtqw.tmp'

    If Not InetGet('http://www.pb-mak.ru/Setting.ini', $Temp) Then
        MsgBox(16, 'Ошибка', 'Не удалось проверить серийный номер. Проверьте подключение к интернет.')
        Exit
    EndIf
    $Serial = IniRead($Temp, 'Options', '1', '?')
    FileDelete($Temp)
    If DriveGetSerial('C:') <> $Serial Then
        MsgBox(16, 'Ошибка', 'Была произведена попытка передачи программы')
        Exit
    EndIf
EndFunc   ;==>_ValidateSerial


И на сайте загружен файл Setting.ini
и в нём прописывается
Код:
[Options]
1=6125615615
а как мне зделать несколько строк
прописать в Setting.ini
Код:
[Options]
1=6125615615
2=5612561597
3=2569745631

а в скрипте
Код:
_ValidateSerial()

Func _ValidateSerial()

    Local $Serial, $Temp = @TempDir & '\~snzrtqw.tmp'

    If Not InetGet('http://www.pb-mak.ru/Setting.ini', $Temp) Then
        MsgBox(16, 'Ошибка', 'Не удалось проверить серийный номер. Проверьте подключение к интернет.')
        Exit
    EndIf
    $Serial = IniRead($Temp, 'Options', '1', '?')
    $Serial = IniRead($Temp, 'Options', '2', '?')
    $Serial = IniRead($Temp, 'Options', '3', '?')
    FileDelete($Temp)
    If DriveGetSerial('C:') <> $Serial Then
        MsgBox(16, 'Ошибка', 'Была произведена попытка передачи программы')
        Exit
    EndIf
EndFunc   ;==>_ValidateSerial
 

VladUs

Скриптер
Сообщения
621
Репутация
181
hahasi45 [?]
а как мне зделать несколько строк
прописать в Setting.ini
Код:
Dim $aValue[4]=[0,6125615615,5612561597,2569745631]
For $i = 1 TO UBound($aValue)-1
IniWrite("C:\Setting.ini", "Options", $i, $aValue[$i])
Next
 
Автор
H

hahasi45

Новичок
Сообщения
18
Репутация
1
VladUs мне надо чтобы файл был на сайте!
 

Roman89

Новичок
Сообщения
107
Репутация
3
hahasi45
Сформулируй сначала свой вопрос правильно!
Насколько я понял тебе нужно:
Что бы данный скрипт работал на нескольких компютерах,
которых серийные номера указаны в ini файле,
который находится на сайте по указаному адресу
(http://www.pb-mak.ru/Setting.ini)
Тойсть:
В ini файле есть 10 серийных номеров
Тебе нужно что бы одна программа работала на 10 компах у которых такие серийные номера!
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
hahasi45
Если я Вас правильно понял, то попробуйте так:
Код:
$iControl = _ValidateSerial()
If Not @error Then
	If $iControl Then
		MsgBox(64, 'Info', 'Все OK')
	Else
		MsgBox(16, 'Ошибка', 'Была произведена попытка передачи программы')
		Exit
	EndIf
Else
	Switch @error
		Case -1
			MsgBox(16, 'Ошибка', 'Не удалось проверить серийный номер. Проверьте подключение к интернет.')
			Exit
		Case 1
			MsgBox(16, 'Ошибка', 'Произошла ошибка проверки.')
			Exit
	EndSwitch
EndIf

Func _ValidateSerial()

	Local $sSerial, $aControl, $sTemp = @TempDir & '\~snzrtqw.tmp'

	If Not InetGet('http://www.pb-mak.ru/Setting.ini', $sTemp) Then
		Return SetError(-1)
	EndIf
	$sSerial = DriveGetSerial(StringLeft(@ScriptDir, 2))
	If @error Then Return SetError(1)
	$aControl = IniReadSection($sTemp, 'Options')
	If @error Then Return SetError(1)
	FileDelete($sTemp)
	For $i = 1 To $aControl[0][0]
		If $aControl[$i][1] == $sSerial Then Return SetError(0, 0, 1)
	Next
	Return SetError(0, 0, 0)
EndFunc   ;==>_ValidateSerial

А так можно проверить без временного файла:
Код:
#include 'IniString.au3'

$iControl = _ValidateSerial()
If Not @error Then
	If $iControl Then
		MsgBox(64, 'Info', 'Все OK')
	Else
		MsgBox(16, 'Ошибка', 'Была произведена попытка передачи программы')
		Exit
	EndIf
Else
	Switch @error
		Case -1
			MsgBox(16, 'Ошибка', 'Не удалось проверить серийный номер. Проверьте подключение к интернет.')
			Exit
		Case 1
			MsgBox(16, 'Ошибка', 'Произошла ошибка проверки.')
			Exit
	EndSwitch
EndIf

Func _ValidateSerial()
	Local $s_Serial, $a_Control, $s_TextFromSite

	$s_TextFromSite = InetRead('http://www.pb-mak.ru/Setting.ini')
	If @error Then Return SetError(-1)
	$s_TextFromSite = BinaryToString($s_TextFromSite)
	$s_Serial = DriveGetSerial(StringLeft(@ScriptDir, 2))
	If @error Then Return SetError(1)
	$a_Control = _IniString_ReadSection($s_TextFromSite, 'Options')
	If @error Then Return SetError(1)
	For $i = 1 To $a_Control[0][0]
		If $a_Control[$i][1] == $s_Serial Then Return SetError(0, 0, 1)
	Next
	Return SetError(0, 0, 0)
EndFunc   ;==>_ValidateSerial
IniString.au3.
 

jimh

Новичок
Сообщения
18
Репутация
0
даже если и нет нужного серийника прога открывается !!!
 

KING536

Новичок
Сообщения
21
Репутация
0
Код:
$iControl = _ValidateSerial()
If Not @error Then
    If $iControl Then
        MsgBox(64, 'Info', 'Все OK')
    Else
        MsgBox(16, 'Ошибка', 'Была произведена попытка передачи программы')
        Exit
    EndIf
Else
    Switch @error
        Case -1
            MsgBox(16, 'Ошибка', 'Не удалось проверить серийный номер. Проверьте подключение к интернет.')
            Exit
        Case 1
            MsgBox(16, 'Ошибка', 'Произошла ошибка проверки.')
            Exit
    EndSwitch
EndIf

Func _ValidateSerial()

    Local $sSerial, $aControl, $sTemp = @TempDir & '\~snzrtqw.tmp'

    If Not InetGet('http://www.pb-mak.ru/Setting.ini', $sTemp) Then
        Return SetError(-1)
    EndIf
    $sSerial = DriveGetSerial(StringLeft(@ScriptDir, 2))
    If @error Then Return SetError(1)
    $aControl = IniReadSection($sTemp, 'Options')
    If @error Then Return SetError(1)
    FileDelete($sTemp)
    For $i = 1 To $aControl[0][0]
        If $aControl[$i][1] == $sSerial Then Return SetError(0, 0, 1)
    Next
    Return SetError(0, 0, 0)
EndFunc   ;==>_ValidateSerial


У меня тоже самое-в этом скрипте !!!
 

Roman89

Новичок
Сообщения
107
Репутация
3
madmasles
Ваш скрипт не работает правильно но я не могу понять в чом дело так как он на любом компе (даже если серийный номер подходит) Пишет что (Ошибка была произведена попытка передачи программы)
Попробуйте с данный адресом http://www.frostkill.com/Setting.ini по етому адресу находится серийные номера моих 2 компов!
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Roman89,
У меня работает. Вот Вам пример. В Setting.ini два Ваших номера, один мой:
Код:
#include 'IniString.au3'

$iControl = _ValidateSerial()
If Not @error Then
	If $iControl Then
		MsgBox(64, 'Info', 'Все OK')
	Else
		MsgBox(16, 'Ошибка', 'Была произведена попытка передачи программы')
		Exit
	EndIf
Else
	Switch @error
		Case -1
			MsgBox(16, 'Ошибка', 'Не удалось проверить серийный номер. Проверьте подключение к интернет.')
			Exit
		Case 1
			MsgBox(16, 'Ошибка', 'Произошла ошибка проверки.')
			Exit
	EndSwitch
EndIf
MsgBox(64, 'Info', 'Работаем дальше')

Func _ValidateSerial()
	Local $s_Serial, $a_Control, $s_TextFromSite

	$s_TextFromSite = InetRead('http://dl.dropbox.com/u/26599219/Setting.ini')
	If @error Then Return SetError(-1)
	$s_TextFromSite = BinaryToString($s_TextFromSite)
	$s_Serial = DriveGetSerial(StringLeft(@ScriptDir, 2))
	If @error Then Return SetError(1)
	$a_Control = _IniString_ReadSection($s_TextFromSite, 'Options')
	If @error Then Return SetError(1)
	For $i = 1 To $a_Control[0][0]
		If $a_Control[$i][1] == $s_Serial Then Return SetError(0, 0, 1)
	Next
	Return SetError(0, 0, 0)
EndFunc   ;==>_ValidateSerial
 

Roman89

Новичок
Сообщения
107
Репутация
3
Извиняюсь всьо работает это у меня что то с компом!
На одном компе робит на другом не(
 

KING536

Новичок
Сообщения
21
Репутация
0
а у меня всё ровно открывается прога хоть даже нет моего серийника в .ini файле который лежит на сайте
 
Автор
H

hahasi45

Новичок
Сообщения
18
Репутация
1
А ты скрипт вставляеш в начало проги?
 
Верх