Программирование
Веб программирование

Делаем регистрацию для своей программы

 
 

Наверняка, если ты напишешь супер программу ты захочешь на ней бабло заработать. Вот только может хрень такая получиться, ты продашь челу программу, а он начнет ее распространять (создавать сайты всякие, на болванки скидывать(и продавать)). Так чтоб этого избежать, т.е. защитить свою программу от пиратов и злых дядек, надо сделать регистрацию программы. Т.е. программой сможет пользоваться только тот кто заплатил за нее деньги, и зарегистрировал. Надо сделать так, что б на каждом компе был свой серийный номер и ключ, т.к. если у всех будут одинаковые ключи и с/н то ты продашь ее одному челу, а он начнет всем говорить коды.

Ну, тянуть не буду, скажу идею:

На форме 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. Для этого лучше написать программу(см. след. шаг) Исходник ищи Здесь.


Есть вопросы? Спроси на нашем форуме!!
Mark [14.05.2010 17:56]

У меня только 1 вопрос, повторно нельзя запускать??? у меня повтороно не запускаеться....тупо. что делать?

Александр [19.11.2010 18:13]

как я понимаю нет

Нурсик [26.06.2011 01:30]

Mark повторно не будет открываться потому что прога уже зарегся на том компе в котором использовался, прога будет как бэээ зарегать только один раз =)

алексей [02.12.2011 15:15]

можно повторно сделать если код изменить
ну либо функцию старт не включать
это уберите и всё
Else ' Если же в реестре параметр Serial = 1(программа зарег-на), то запускаем функцию Start
Start

Малолетка [15.12.2011 21:07]

Помогите пожалуйста у меня выдаёт ошибку в двух строках
SaveSetting "proga", "serial", "serial", 1 MsgBox "Программа зарегистрирована" Start ' Запускаем функцию Start
Else
MsgBox "Введен не правильный ключ!!! Для регистрации отправь автору программы с/н и $, а он вышлет тебе ключ" End If
End Sub

алексей [16.12.2011 20:38]

Малолетка напиши так
SaveSetting "proga", "serial", "serial", 1
MsgBox "Программа зарегистрирована" Start ' Запускаем функцию Start
Else
MsgBox "Введен не правильный ключ!!! Для регистрации отправь автору программы с/н и $, а он вышлет тебе ключ"
End If
End Sub

Искандар [26.01.2012 11:04]

Всем привет! Вопрос - Мне нужен код этой программа на Visual basic 2010. Дайте пожалуйста. Буду очень благодарен.

Искандар [26.01.2012 11:26]

И потом можете добавить на сайт Раздел "Visual Basic 2010"?

Padre [26.01.2012 11:56]

Держи: http://vbbook.ru/vb.net/vbnet--delaem-registraciu-dlya-svoeiy-programmu/ ))

Padre [26.01.2012 11:56]

Visual Basic 2010 это VB.Net

Искандар [26.01.2012 12:32]

Огромное спасибо Padre у меня получилось. Но именно это программа нужна? Плиззз!

Искандар [26.01.2012 15:21]

Mark это для тебя
1. Пуск-выполнить-regedit
2. HKEYCURRENTUSER\Software\VB and VBA Program Settings\proga\serial\serial - изменить - значение: "0" сделаем там должно быть "1" и все можешь спокойно ещё раз запускать. Удачи!

Искандар [06.02.2012 16:16]

Всем привет. Кто нибудь дайте пожалуйста этот код на visual basic.net. Буду очень благодарен. За ранее спасибо!

Искандар [06.02.2012 16:17]

Мая почта - i.mails@mail.ru

Я же [18.02.2012 21:45]

у меня есть прога как этот код использовать?

Нуб [19.02.2012 13:07]

как это прогу использовать?

Искандар [20.02.2012 17:10]

Все эти коди напишите на form1

Изменение:
Function Start()
End ' Здесь на пример Form2 (Если программа зарегистрирована то открывается Form2)
End Function

Если есть ещё вопросы обращайтесь i.mails@mail.ru

Megustan [04.11.2012 21:14]

А у меня короче пишет ошибка и выделяет мне f в
SNPath = Environ("windir") & "key.sn"
f = FreeFile

maks90610 [24.03.2013 22:45]

Автор, прошу прощения, но у меня такой вопрос: Я всё сделал по инструкции, а программа не генирирует Серийный номер. Что делать? Или я чего то не понял из программы? Ответьте пожалуйста...



Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.