问题是得到注册码如何把注册码写入exe内
解决方案 »
- 如何让你的VB6 IDE支持鼠标滚轮(过程)
- 用jet jro对象备份的数据库,可以还原吗?怎么实现?
- 请教VB如何实现手工调节曲线
- 用VB如何实现复制
- 问个简单问题。在线等,解决马上给他
- 关于RichTextBox中查找的问题
- 寻求介绍API函数的书或网站
- 求助:如何做多个控件之间的连线啊?
- 打印特菜问题一,请问能否实现这种效果。请dbcontrols(泰山__抛砖引玉) 多多帮忙
- 如何打开一个ACCESS表,并显示在MSFlexGrid控件中,要用代码?如何实现,谢谢大家
- 一个有关VB调用存储过程的问题,谢谢。
- 谁有TTS(Text - To - Speaker)的完全中文开发文档,保证给足1000分
简单的读写注册表函数:getsetting(),savesetting()。
首先,你要编一个算法来生成密码,可以使用用户名(还可以使用C盘的序列号,这就是针对硬盘加密了)然后将这个算法植入你的代码(用他来验证用户输入的数据是否正确。)如果输入的注册信息和程序里面植入的算法的计算结果相同,就可以利用API函数里的regsetvalueex函数,将注册信息写入注册表,这样就完成了注册。程序每次启动利用regqueryvalueex函数读取程序写入注册信息的位置,如果没有读到则表示没有注册过,读到了信息再将此信息和算法生成的数据比较一下相同就表示是注册过的。
不知道这个方法能不能帮你。
注册码,这样可防止一个用户一旦取得注册码后,多个用户使用的情况。另为你提供如下读写注册表的 函数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_SUCCESS = 0&' Registry API prototypesDeclare Function RegCloseKey Lib "advapi32.dll" (ByVal HKEY As Long) As Long
Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal HKEY As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal HKEY As Long, ByVal lpSubKey As String) As Long
Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal HKEY As Long, ByVal lpValueName As String) As Long
Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal HKEY As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal HKEY As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal HKEY As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Public Const REG_SZ = 1 ' Unicode nul terminated string
Public Const REG_DWORD = 4 ' 32-bit number
Public Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
'以下是为了获取windows得系统目录
Public Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Public Sub savekey(HKEY As Long, strPath As String)
Dim keyhand&
r = RegCreateKey(HKEY, strPath, keyhand&)
r = RegCloseKey(keyhand&)
End SubPublic Function getstring(HKEY As Long, ByVal strPath As String, ByVal strValue As String)Dim keyhand As Long
Dim datatype As Long
Dim lResult As Long
Dim strBuf As String
Dim lDataBufSize As Long
Dim intZeroPos As Integer
r = RegOpenKey(HKEY, strPath, keyhand)
lResult = RegQueryValueEx(keyhand, strValue, 0&, lValueType, ByVal 0&, lDataBufSize)
If lValueType = REG_SZ Then
strBuf = String(lDataBufSize, " ")
lResult = RegQueryValueEx(keyhand, strValue, 0&, 0&, ByVal strBuf, lDataBufSize)
If lResult = ERROR_SUCCESS Then
intZeroPos = InStr(strBuf, Chr$(0))
If intZeroPos > 0 Then
getstring = Left$(strBuf, intZeroPos - 1)
Else
getstring = strBuf
End If
End If
End If
End Function
Public Sub savestring(HKEY As Long, ByVal strPath As String, ByVal strValue As String, ByVal strdata As String)
Dim keyhand As Long
Dim r As Long
r = RegCreateKey(HKEY, strPath, keyhand)
r = RegSetValueEx(keyhand, strValue, 0, REG_SZ, ByVal strdata, Len(strdata))
r = RegCloseKey(keyhand)
End Sub
Function getdword(ByVal HKEY As Long, ByVal strPath As String, ByVal strValueName As String) As Long
Dim lResult As Long
Dim lValueType As Long
Dim lBuf As Long
Dim lDataBufSize As Long
Dim r As Long
Dim keyhand As Longr = RegOpenKey(HKEY, strPath, keyhand) ' Get length/data type
lDataBufSize = 4
lResult = RegQueryValueEx(keyhand, strValueName, 0&, lValueType, lBuf, lDataBufSize)If lResult = ERROR_SUCCESS Then
If lValueType = REG_DWORD Then
getdword = lBuf
End If
'Else
' Call errlog("GetDWORD-" & strPath, False)
End Ifr = RegCloseKey(keyhand)
End FunctionFunction SaveDword(ByVal HKEY As Long, ByVal strPath As String, ByVal strValueName As String, ByVal lData As Long)
Dim lResult As Long
Dim keyhand As Long
Dim r As Long
r = RegCreateKey(HKEY, strPath, keyhand)
lResult = RegSetValueEx(keyhand, strValueName, 0&, REG_DWORD, lData, 4)
'If lResult <> error_success Then Call errlog("SetDWORD", False)
r = RegCloseKey(keyhand)
End FunctionPublic Function DeleteKey(ByVal HKEY As Long, ByVal strKey As String)
Dim r As Long
r = RegDeleteKey(HKEY, strKey)
End FunctionPublic Function DeleteValue(ByVal HKEY As Long, ByVal strPath As String, ByVal strValue As String)
Dim keyhand As Long
r = RegOpenKey(HKEY, strPath, keyhand)
r = RegDeleteValue(keyhand, strValue)
r = RegCloseKey(keyhand)
End Function