Хочу предложить вид привязки программы к компьютеру(ам).
И так приступим :
1) Сначало узнаем ID нашего компьютера.
Для этого компилируем данную программу:
И запускаем. Программа запускается автоматически от имени администратора.
В ней и будет ваш идентификатор.
Пол пути пройдено а теперь приступим к привязке.
Есть 2 пути привязки, по ini файлу на сайте, либо в самой программе.
У каждого свои приемущества. Если через сайт, то можно привязать много компов, и так же отвязать, а если через программу, то это привязка навсегда.
Перейдем.
2) Привязка кода к программе.
Привязываем через сайт.
Нам нужен файл .ini заполненный в такой форме:
Вместо id вставляем ранее полученный код.
В данный файл можно вписывать Unlimited компьютеров, то есть привязка на много компов.
Заливаем файл на сайт допустим под именем control.ini
Теперь идем в саму программу. Добавляем в самое начало такой код:
Вместо yourdomen.ru ставим свой домен, компилируем файл. Если все указано правильно и идентификатор уже на сайте, то программа запустится.
Это был первый вариант привязки через файл ini, лежащий на сайте.
Теперь перейдем ко второму способу, привязки через программу.
После получения кода, в начале программы добавьте это:
Это и есть привязка по компьютеру через программу.
И так приступим :
1) Сначало узнаем ID нашего компьютера.
Для этого компилируем данную программу:
Код:
#include <GUIConstantsEx.au3>
#Region
#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator
#EndRegion
$s_Serial = DriveGetSerial(StringLeft(@ScriptDir, 2))
$gui = GUICreate ("Идентификатор", 230,35)
GUICtrlCreateLabel ("Ваш идентификатор:", 10,10)
$s_Serial1 = GUICtrlCreateInput ($s_Serial, 120,8, 100)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg(1)
Select
Case $msg[0] = $GUI_EVENT_CLOSE
If $msg[1] = $gui Then
Exit
EndIf
EndSelect
WEnd
GUIDelete()
И запускаем. Программа запускается автоматически от имени администратора.
В ней и будет ваш идентификатор.
Пол пути пройдено а теперь приступим к привязке.
Есть 2 пути привязки, по ini файлу на сайте, либо в самой программе.
У каждого свои приемущества. Если через сайт, то можно привязать много компов, и так же отвязать, а если через программу, то это привязка навсегда.
Перейдем.
2) Привязка кода к программе.
Привязываем через сайт.
Нам нужен файл .ini заполненный в такой форме:
Код:
[Computers]
1=id
2=id
Вместо id вставляем ранее полученный код.
В данный файл можно вписывать Unlimited компьютеров, то есть привязка на много компов.
Заливаем файл на сайт допустим под именем control.ini
Теперь идем в саму программу. Добавляем в самое начало такой код:
Код:
#include <IniString.au3>
$iControl = _ValidateSerial()
If Not @error Then
If $iControl Then
MsgBox(64, 'Идентификация', 'Идентификация прошла успешно')
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://yourdomen.ru/control.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, 'Computers')
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
Вместо yourdomen.ru ставим свой домен, компилируем файл. Если все указано правильно и идентификатор уже на сайте, то программа запустится.
Это был первый вариант привязки через файл ini, лежащий на сайте.
Теперь перейдем ко второму способу, привязки через программу.
После получения кода, в начале программы добавьте это:
Код:
$HDDSer = "Ваш идентификатор"
_ValidateSerial()
Func _ValidateSerial()
$HDDSerial = DriveGetSerial(StringLeft(@ScriptDir, 2))
If $HDDSerial <> $HDDSer Then
MsgBox(0, "Идентификация", "У вас нет доступа к программе")
EndIf
EndFunc
Это и есть привязка по компьютеру через программу.