Location:
Search - RegOpenKeyEx
Search list
Description: 拦截RegOpenKeyEx的函数,可以仿照此程序拦截其他注册表函数。已调试成功-interception RegOpenKeyEx function can be modeled on the procedure to intercept other registry function. Debugging has been successful
Platform: |
Size: 3878917 |
Author: 刘用 |
Hits:
Description: 软件限时使用与注册功能的实现
众所周知,一些共享软件往往提供给使用者的是一个功能不受限制的限时使用版,在试用期内使用者可以无限制的使用软件的全部功能(只是可能会出现提示使用者注册的窗口),试用期一过部分(或全部)功能失效,要想继续使用只能向作者索取注册码(或注册文件)完成对软件的合法注册,注册后的软件将解除一切使用限制。如果您也开发出一个有价值的作品,是否也希望为自己的软件增加一个这样的功能呢?这里笔者就提供一个实现软件限时的完整代码。
软件启动后会首先运行本代码并从注册表HKEY_LOCAL_MACHINE\Software\MyProgram子键下的三个键值MyProgram1-3中读取键值数据。其中MyProgram2的值是软件首次运行日期,MyProgram3的值是软件当前运行时的日期,MyProgram1的值是软件的使用标志:如果软件在试用期内则其值为字符串sign1;如果软件试用期满则其值为字符串sign2,如果软件已经注册则其值为字符串sign3。全局变量ZHUCE依据读取的MyProgram1键值而赋值:ZHUCE=-1说明试用期满,ZHUCE=-2说明软件已注册,ZHUCE=其它值为剩余天数,您的主程序代码要依据此全局变量ZHUCE的值设计相应的交互响应。
为方便您将代码嵌入现存的程序代码中,本示例将全部代码写入一个模块.bas中(模块名随意,也可添加到已有模块中)。注意,代码中的Private Sub Main()过程为整个程序的启动入口,您需要在“工程属性”对话框中将“启动对象”设置为“Sub Main()”。
'通用模块
Global ZHUCE As Integer
'说明:全局变量ZHUCE=-1试用期满,ZHUCE=-2已注册,ZHUCE=其它值为剩余天数
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
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
Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
Private Sub Main()'程序总入口
Dim a As Long, rc(3) As Long, hKey As Long, KeyValType As Long, KeyValSize(3) As Long
Dim c As String, h As String, tmpVal(3) As String
Dim datetime As Integer
datetime = 30'试用期天数
ZHUCE = -1
On Error GoTo cuowu
'以下从注册表HKEY_LOCAL_MACHINE\Software\MyProgram的三个值中取出相关数据字串tmpVal(3)
a = RegOpenKeyEx(&H80000002, "Software\MyProgram", 0, 131135, hKey) ' 打开注册表关键字
For a = 1 To 3: tmpVal(a) = String$(1024, 0): KeyValSize(a) = 1024: Next
rc(1) = RegQueryValueEx(hKey, "MyProgram3", 0, KeyValType, tmpVal(1), KeyValSize(1))
rc(2) = RegQueryValueEx(hKey, "MyProgram2", 0, KeyValType, tmpVal(2), KeyValSize(2))
rc(3) = RegQueryValueEx(hKey, "MyProgram1", 0, KeyValType, tmpVal(3), KeyValSize(3))
For a = 1 To 3
If (Asc(Mid(tmpVal(a), KeyValSize(a), 1)) = 0) Then
tmpVal(a) = Left(tmpVal(a), KeyValSize(a) - 1)
Else
tmpVal(a) = Left(tmpVal(a), KeyValSize(a))
End If
Next
a = RegCloseKey(hKey) '关闭注册表
'使用期限判断
If tmpVal(3) = "sign3" Then ZHUCE = -2: Exit Sub '查找到已注册标志sign3
If Len(tmpVal(1)) = 1023 And Len(tmpVal(2)) = 1023 And Len(tmpVal(3)) = 1023 Then
'首次使用,将当前日期分别写入tmpVal(1)和tmpVal(2)中,在tmpVal(3)中写入准许运行标志sign1
CreateObject("WScript.Shell").regWrite "HKEY_LOCAL_MACHINE\Software\MyProgram\MyProgram3", Date$, "REG_SZ"
CreateObject("WScript.Shell").regWrite "HKEY_LOCAL_MACHINE\Software\MyProgram\MyProgram2", Date$, "REG_SZ"
CreateObject("WScript.Shell").regWrite "HKEY_LOCAL_MACHINE\Software\MyProgram\MyProgram1", "sign1", "REG_SZ"
ZHUCE = datetime
MsgBox "试用期剩余" & Trim(datetime) & "天"
Else
If tmpVal(3) = "sign2" Then '查找到永久中止标志sign2中止使用
ZHUCE = -1
Exit Sub
MsgBox "试用期已满,请您注册!"
End If
If Date datetime Then '使用期超过datetime天中止使用
'写入tmpVal(3)中止使用字串sign2
CreateObject("WScript.Shell").regWrite "HKEY_LOCAL_MACHINE\Software\MyProgram\MyProgram1", "sign2", "REG_SZ"
ZHUCE = -1
MsgBox "试用期已满,请您注册!"
Else
'写入当前日期于tmpVal(2)中
CreateObject("WScript.Shell").regWrite "HKEY_LOCAL_MACHINE\Software\MyProgram\MyProgram2", Date$, "REG_SZ"
ZHUCE = datetime - (DateValue(Date) - DateValue(tmpVal(1)))
MsgBox "试用期剩余" & Trim(datetime) & "天"
End If
End If
End If
cuowu:
End Sub
从安全保密角度出发,当您应用上述代码时紫色部分应该根据您个人的保密设想进行必要的修改(当然您也可以不修改而直接应用):①示例中的代码把软件的注册与运行信息保存在HKEY_LOCAL_MACHINE\Software\MyProgram子键下的MyProgram1-3三个键值内,请根据您个人的保密原则修改为您所需要的子键名,以隐蔽为原则!②MyProgram1键值中的数据(字符串sign1或sign2或sign3分别对应着试用/期满/注册)应根据您个人的保密设想修改成需要的字符串,也以隐蔽为原则!
主程序中当用户输入正确的注册码(注册码当然是您随意愿而设)后,请执行语句:
CreateObject("WScript.Shell").regWrite "HKEY_LOCAL_MACHINE\Software\MyProgram\MyProgram1", "sign2", "REG_SZ"
完成软件注册。(该行代码中的Software\MyProgram\MyProgram1和sign2请与上述代码保持一致!)
Platform: |
Size: 18051 |
Author: dianfeng |
Hits:
Description: 通过全局hook,拦截RegOpenKeyEx函数
Platform: |
Size: 291828 |
Author: bugs2007 |
Hits:
Description: 拦截RegOpenKeyEx的函数,可以仿照此程序拦截其他注册表函数。已调试成功-interception RegOpenKeyEx function can be modeled on the procedure to intercept other registry function. Debugging has been successful
Platform: |
Size: 3878912 |
Author: 刘用 |
Hits:
Description: WinCE下的注册表编辑器EVC代码可以实现完整的注册表编辑和查看功能。修改到ARM平台和MIPS,X86等平台版本都可以编译-WinCE Registry Editor under the code can be achieved EVC complete Registry Editor and viewing features. Modifications to the ARM platform and MIPS, X86 and other platform versions can be compiled
Platform: |
Size: 114688 |
Author: F |
Hits:
Description: 拦截注册表的操作函数 RegOpenKeyEx-Get Api function RegOpenKeyEx
Platform: |
Size: 291840 |
Author: 赵亮 |
Hits:
Description: VC操作查询注册表,简单的注册表操作示例程序,打开与路径subkey相关的 hKEY,第一个参数为根键名称,第二个参数表。表示要访问的键的位置,第三个参数必须为0,KEY_READ表示以查询的方式。访问注册表,hKEY则保存此函数所打开的键的句柄。hKEY为刚才RegOpenKeyEx()函数所打开的键的句柄,"RegisteredOwner"。表示要查询的键值名,User_Get保存所查询的数据。与RegQureyValueEx()类似,hKEY表示已打开的键的句柄,"RegisteredOwner" 表示要访问的键值名,User_Set表示新的键值。
-VC operation queries the registry, registry operation simple sample program, open the path subkey related hKEY, the first argument is the root key name, the second parameter tables. To access the keys represent the position of the third parameter must be 0, KEY_READ expressed in the query. Access to the registry, hKEY then save the handle to open this function keys. hKEY is just RegOpenKeyEx () function to open the key handle, " RegisteredOwner" . To query key name indicates, User_Get save the query data. Similar RegQureyValueEx (), hKEY indicates open handles keys, " RegisteredOwner" indicates the key name you want to access, User_Set said the new key.
Platform: |
Size: 19456 |
Author: 占亮 |
Hits:
Description: 透明对话框 查询注册表,之前一直没注意,分享一下,就是RegOpenKeyEx里面路径的斜杠一定不要写反了,不然结果就是不存在。NND-Transparent dialog box querying the registry, has not noticed before, to share, there is a slash RegOpenKeyEx path must not write backwards, otherwise the result is not present. NND
Platform: |
Size: 23552 |
Author: jakey |
Hits:
Description: VC操作查询注册表,简单的注册表操作示例程序,打开与路径subkey相关的 hKEY,第一个参数为根键名称,第二个参数表。表示要访问的键的位置,第三个参数必须为0,KEY_READ表示以查询的方式。访问注册表,hKEY则保存此函数所打开的键的句柄。hKEY为刚才RegOpenKeyEx()函数所打开的键的句柄,"RegisteredOwner"。表示要查询的键值名,User_Get保存所查询的数据。与RegQureyValueEx()类似,hKEY表示已打开的键的句柄,"RegisteredOwner" 表示要访问的键值名,User_Set表示新的键值。-VC operation queries the registry, registry operation simple sample program, open the path subkey related hKEY, the first argument is the root key name, the second parameter tables. To access the keys represent the position of the third parameter must be 0, KEY_READ expressed in the query. Access to the registry, hKEY then save the handle to open this function keys. hKEY is just RegOpenKeyEx () function to open the key handle, "RegisteredOwner". To query key name indicates, User_Get save the query data. Similar RegQureyValueEx (), hKEY indicates open handles keys, "RegisteredOwner" indicates the key name you want to access, User_Set said the new key.
Platform: |
Size: 18432 |
Author: wpudn23 |
Hits: