[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » Наш сайт » Visual basic » Делаем регистрацию для своей программы (Делаем регистрацию для своей программы)
Делаем регистрацию для своей программы
ilimДата: Пятница, 04.02.2011, 05:24 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 680
Награды: 17
Репутация: 4
Статус: Offline
Наверняка, если ты напишешь супер программу ты захочешь на ней бабло заработать. Вот только может хрень такая получиться, ты продашь челу программу, а он начнет ее распространять(сайты всякие делать, на болванки скидывать(и продавать)). Так чтоб этого избежать, т.е. защитить свою программу от пиратов и злых дядек, надо сделать регистрацию программы. Т.е. программой сможет пользоваться только тот кто заплатил за нее деньги, и зарегистрировал. Надо сделать так, что б на каждом компе был свой серийный номер и ключ, т.к. если у всех будут одинаковые ключи и с/н то ты продашь ее одному челу, а он начнет всем говорить коды.

Ну, тянуть не буду, скажу идею:
На форме 2 текст. поля, первое текст. поле это с/н, при первом запуске программы в заныканый файл(или реестр) записывается случайный с/н(RND). Второе текстовое поле, это ключ. Он высчитывается в зависимости от с/н, по определенной формуле(например ключ = с/н * 3/555+1). Так вот, чел присылает тебе свой с/н(а он на каждом компе свой) + бабло, а ты ему ключ. Идею понял?? Ну тогда начнем`с:

Как я уже и говорил, на форму кинь кнопку(Caption = "Регистрация"), 2 текст. поля(в ряд), 2 метки(у первой Caption = "Серийный номер", она находится напротив первого текст. поля, у второй: Caption = "Ключ", напротив второго текст. поля). Вот что у тебя должно получиться:

Теперь подайдем к коду:

Dim SNPath As String ' В этой переменной будет храниться путь к заныканому файлу с с/н
Dim GetReestr As String ' В эту переменную будет читаться данные из реестра
Dim Serial As String ' А эта переменная, будет загружать в текст. поле 1 с/н из файла

Function Start() ' Эта функция будет выполняться если программа зарегистрирована
End ' Я написал End, а ты можешь сюда что - нбудь по умнее вставить
End Function

Private Sub Form_Load() Randomize ' Этот оператор нужен для того, чтоб всегда генерировались случайные числа(RND(ты что забыл??))
On Error Resume Next ' Если происходит ошибка, то игнорируем ее
GetReestr = GetSetting("proga", "serial", "serial") ' Читаем из реестра значение параметра serial(если serial = 0, значит программа не зарегистрированая, а если 1 то зарег-на)

SNPath = Environ("windir") & "\key.sn" ' В переменную SNPath - записываем путь к заныканому в папке windows файлу key.sn
f = FreeFile

If Val(GetReestr) <> 1 Then ' Если GetReestr не равен 1, то продолжаем регистрацию, если же = 1, то программа уже зарегистрирована
If Dir(SNPath) = "" Then ' Если файла с с/н не существует, то:
Text1.Text = Fix(Rnd * 8000000000#) ' Генерируем случайное число(в любом пределе, можно вместо 8 с деветью нулями написать любое число), и округляем его(Fix())
Serial = Text1.Text ' Это число записываем в перем. Serial
Open SNPath For Output As f ' Открываем заныканный файл
Print #f, Text1.Text ' Записываем в него с/н из текст. поля 1
Close #f ' Закрываем
SaveSetting "proga", "serial", "serial", 0 ' Записываем в реестр параметр Serial со значением 0(ноль означает что программа не зарегистрирована)
Else ' Если же файл существует, то читаем из него с/н
Open (SNPath) For Input As f
Serial = Val(Input(LOF(f), f))
Text1.Text = Serial ' В текс. поле помещаем с/н
Close #f
End If
Else ' Если же в реестре параметр Serial = 1(программа зарег-на), то запускаем функцию Start
Start
End If
End Sub

Private Sub Command1_Click() ' При нажатии на кнопку:
Text1.Text = Serial ' Копируем в текст. поле значение переменной serial(на случай, если чел изменил текст в текст. поле 1)
If Text2.Text = Fix(Val(Serial) * 3 + 333 / 2) Then ' Вот самое интересное :-), если текст. поле 2(ключ) равен с/н умноженному на 3 + 333 / 2
SaveSetting "proga", "serial", "serial", 1 MsgBox "Программа зарегистрирована" Start ' Запускаем функцию Start
Else
MsgBox "Введен не правильный ключ!!! Для регистрации отправь автору программы с/н и $, а он вышлет тебе ключ" End If
End Sub

Ну вот и все, чтобы узнать ключ с/н * 3 + 333 / 2. Для этого лучше написать программу(см. след. шаг)


www.ilim.kz
 
Форум » Наш сайт » Visual basic » Делаем регистрацию для своей программы (Делаем регистрацию для своей программы)
Страница 1 из 11
Поиск: