为你的VB程序程序加密(VB新手)

时间:2010-01-26 10:10:40  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:加入以下代码:  Private Sub Form_Load()  Dim a as Variant  a=InputBox("请输入密码!")  If a<>"****" Then MsgBox "密码错误,您不能使用本软件!": End 注释:****为预先设定的字符  End Sub  怎么样,能唬人吧。什么?太烂!  2.在硬盘上建立一个文件用于存放密码,这样就可...
  正文:

vb的好处我就不多说了。VB初学者模仿能力很强,总希望自己的程序看起来专业一点,如用密码登录、制作限次版、限时版、强行启动等等,其实这些东西并不神秘,在VB里只要用少量代码就可实现。
  1.最简单的可执行文件密码登录:
  在程序启动时加入以下代码:
  Private Sub Form_Load()
  Dim a as Variant
  a=InputBox("请输入密码!")
  If a<>"****" Then MsgBox "密码错误,您不能使用本软件!": End 注释:****为预先设定的字符
  End Sub
  怎么样,能唬人吧。什么?太烂!
  2.在硬盘上建立一个文件用于存放密码,这样就可以读写修改了
  On Error GoTo sss
   注释:若文件不存在,则捕获该错误,建立密码
  Open ("c:abc.abc") For Input As #1
  注释:文件存在,则打开文件
  Input #1,b 注释:将密码读入变量b
  Close #1
  a=InputBox("请输入密码!")
  If a<>b Then MsgBox "密码错误,您不能使用本软件!":End
  Exit Sub
  sss:
  a=InputBox("请建立密码!")
  Open("c:abc.abc") For Output As #2 注释:在硬盘上建立存放密码的文件
  Print #2,a
  Close #2
  MsgBox "建立密码成功!"
   使用InputBox输入密码的缺点是密码被显示出来,大家可以另建一个窗体代替输入对话框,加入一TextBox并将其PasswordChar属性 设为*就行了。文件abc.abc可用任何文本文件打开编辑,因此在你未学会加密算法之前可将文件命名为*.sys或*.dll,并放在windows或 system目录下,甚至将其属性设为隐藏,哈哈,系统文件谁敢乱改!不过要小心不要覆盖真正的系统文件。
  用启动登录的方法加密会令用户反感,最好只用在软件中较重要的修改数据部分或用于多用户登录。如果你想制作共享软件,那就先试试限次版吧。
  3.软件限定使用次数说白了也是在硬盘中的某个地方作个标记,每启动一次就记数一次,当次数加到一定值时就不允许使用软件。以上代码稍加改动也能实现 :
  Private Sub Form_Load()
  On Error GoTo sss
  注释:若文件不存在,则建立文件
  Open("c:abc.abc") For Input As #1
  注释:文件存在,则打开文件
  Input #1,b 注释:将数值读入变量b
  Close #1
  If b>100 Then MsgBox "对不起,您只能使用本软件100次!":End
  注释:提示用户使用次数并退出程序
  c=b+1 注释:计数器加1
  Open("c:abc.abc") For Output As #3
  Print #3,c 注释:将加1后的数值写入文件
  Close #3
  Exit Sub
  sss:
  Open("c:abc.abc") For Output As #2
  Print #2,1 注释:建立文件,并写入数值1
  Close #2
  End Sub
   4.大家一定对win.ini和system.ini文件很熟悉吧,它是一种专门用来保存应用程序初始化信息和运行环境信息的文本文件,Windows 软件的初始化参数的获取与保存是通过读取扩展名为.ini的文本文件来实现的。目前很多软件干脆就把软件密码保存在自己的ini文件中。VB只要利用API的GetPrivateProfileString和WritePrivateProfileString两个函数就可以很方便地读写ini文件,从而可以保存、读出和验证密码。首先认识一下ini文件。
  ini文件的形式为:
  [section1]
  keyword1=value1
  keyword2=value2
  ……
  [section2]
  keyword1=value1
  keyword2=value2
  ……
  section是段名,keyword是关键字名,value为关键字对应的设定值
  首先用WritePrivateProfileSection创建新的段名和关键字名:
   Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String,ByVal lphotoshop/ target=_blank class=infotextkey>pstring As String, ByVal lpFileName As String) As Long
  Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String,ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
  A=WritePrivateProfileSection ("user","password","c:windowsuser.ini")
  在windows目录下的user.ini文件中创建新段名user及该段名下的关键字password,如果目录下没有user.ini文件,则创建该文件
  B=WritePrivateProfileString ("user","password","1234","c:windowsuser.ini"),设定关键字user的值为1234。这样在你的user.ini文件就会多出一段:
"为你的VB程序程序加密(VB新手)"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/VB/12402.html


关键字:

关于《为你的VB程序程序加密(VB新手)》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td