为您的应用程序加上注册的限制

2016-01-29 13:46 8 1 收藏

为您的应用程序加上注册的限制,为您的应用程序加上注册的限制

【 tulaoshi.com - ASP.NET 】

  为您的应用程序加上注册的限制是不是很好,至少现在的共享软件都是这样做的。 大家都用过Winzip这个软件吧!当未注册时每次启动都会弹出个该死的对话框,只有正确的注册后此对话框才会消失。这就是我们本次所要实现的目标。对于这些信息我们将其存储在注册表中VB6.0提供了一个函数及一条语句用于读写注册表它们是GetSetting 和 SaveSetting 遗憾的是我们不能用它将键值 写在注册表的任意位置。难道就没有别的函数了吗?NO!有!那就是Micro$oft的Win32 API 它所提供的 函数可以让我们随意的读写注册表的任何位置包括新建键值、删除键值、新建项目等等……。废话就不多 说了我们还是先来看看如何实现吧!

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

以下控件使用默认名称请不要改变。
1、新建两个窗体。
2、在第一个窗体(Form1)上放置两个文本框及两个按钮。
3、在第二个窗体(Form2)上放置5个标签
4、新建一个标准模块
您现在可以将代码粘贴过去运行了。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

模块的代码
Option Explicit
' 这个模块用于读和写注册表关键字。
' 不同于VB 的内部注册表访问方法,它可以
' 通过字符串的值来读和写任何注册表关键字。
'---------------------------------------------------------------
'-注册表 API 声明...
'RegCloseKey 用于关闭系统注册表中的一个项(或键)
'RegCreateKeyEx用于创建注册表项
'RegOpenKeyEx用于打开注册表项
'RegQueryValueEx 用于获取一个项的设置值
'RegSetValueEx 用于设置指定项的值
'---------------------------------------------------------------
Public Declare Function RegCloseKey Lib "advapi32" (ByVal hkey As Long) As Long
Public Declare Function RegCreateKeyEx Lib "advapi32" Alias "RegCreateKeyExA" (ByVal hkey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByRef phkResult As Long, ByRef lpdwDisposition As Long) As Long
Public Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hkey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long
Public Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hkey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long
Public Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" (ByVal hkey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
'---------------------------------------------------------------
'- 注册表 Api 常数...
'---------------------------------------------------------------
' Reg Data Types...
Public Const REG_SZ = 1 ' Unicode空终结字符串
Public Const REG_EXPAND_SZ = 2' Unicode空终结字符串
Public Const REG_DWORD = 4' 32-bit 数字
Public Const REG_BINARY = 3
' 注册表创建类型值...
Public Const REG_OPTION_NON_VOLATILE = 0 ' 当系统重新启动时,关键字被保留
' 注册表关键字安全选项...
Public Const READ_CONTROL = &H20000
Public Const KEY_QUERY_VALUE = &H1
Public Const KEY_SET_VALUE = &H2
Public Const KEY_CREATE_SUB_KEY = &H4
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
Public Const KEY_NOTIFY = &H10
Public Const KEY_CREATE_LINK = &H20
Public Const KEY_READ = KEY_QUERY_VALUE + KEY_ENUMERATE_SUB_KEYS + KEY_NOTIFY + READ_CONTROL
Public Const KEY_WRITE = KEY_SET_VALUE + KEY_CREATE_SUB_KEY + READ_CONTROL
Public Const KEY_EXECUTE = KEY_READ
Public Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE + _
KEY_CREATE_SUB_KEY + KEY_ENUMERATE_SUB_KEYS + _
KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL

' 注册表关键字根类型...
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_PERFORMANCE_DATA = &H80000004

' 返回值...
Public Const ERROR_NONE = 0
Public Const ERROR_BADKEY = 2
Public Const ERROR_ACCESS_DENIED = 8
Public Const ERROR_SUCCESS = 0

'---------------------------------------------------------------
'-

来源:http://www.tulaoshi.com/n/20160129/1491469.html

延伸阅读
标签: Java JAVA基础
JNDI(The Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。 命名或目录服务使你可以集中存储共有信息,这一点在网络应用中是重要的,...
JavaServer Faces (JSF) 是用于 Java™ Web 应用程序的第一个标准化的用户界面框架。 而 Seam 是一个扩展 JSF 的强大的应用程序框架。在这个由三部分组成的新系列中的第一篇文章中,发现这两种框架之间的互补性。Dan Allen 介绍了 Seam 对 JSF 生命周期的增强,包括上下文状态治理、 RESTful URL、Ajax remoting、适当的异常处理...
上网的朋友一定都用过网络蚂蚁(NetAnts)的吧?不知你在使用过程中有没有注意过,那就是如果你想调动两个“蚂蚁”为您效力是不可能的——它总会把新运行的关闭。而“蚂蚁”程序的妙处就在于:在重复运行“蚂蚁”时它不仅拒绝运行,而且能把已经运行的“蚂蚁”激活,这样用上面的程序就无能为力了。但事实上实现拒绝运行并激活已运行的程序有多种...
标签: Java JAVA基础
一个完整的Java应用程序,通常至少要有一个应用程序的结束点。对于一般程序来说,系统开发者根据需要和个人的偏好,会在程序结束位置,通过添加System.exit(0),或System.out(-1),来结束程序,或不加这些指令,让程序自然运行到结束。 如:下列典型代码 package untitled14; /** * This application is ...
标签: 电脑入门
您知道怎么消除应用程序乱码吗?掌握消除应用程序的乱码的方法是非常重要的,下面就给您介绍怎么消除应用程序的代码. 当你运行某些中文软件时,假如菜单等显示界面上出现乱码,一般可能是软件的中文链接库被英文链接库覆盖引起的,这类乱码经常发生在用微软开发工具(例如 VB、VC)开发的中文软件上。 因为你开发的这类软件,菜单等显示界面上的...

经验教程

581

收藏

17
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部