最好能提供一下代码!谢谢
'Form中代码 Option Explicit Dim sysPath As String '系统路径
Private Sub Check1_Click() If Check1.Value = 1 Then SaveString HKEY_LOCAL_MACHINE, "SoftWare\Microsoft\Windows\CurrentVersion\Run", "自动运行的程序", sysPath & App.EXEName & ".exe" Else DelSetting HKEY_LOCAL_MACHINE, "SoftWare\Microsoft\Windows\CurrentVersion\Run", "自动运行的程序" End If End Sub
Private Sub Form_Load() sysPath = IIf(Len(App.Path) = 3, App.Path, App.Path & "\") '程序所在路径 End Sub 'Modual中代码 '/////////////////////////////////////////////////// '模块功能:注册表操作 '///////////////////////////////////////////////////
Public Const ERROR_SUCCESS = 0& Public Const APINULL = 0&
Const REG_SZ = 1 ' Unicode nul terminated string Const REG_BINARY = 3 ' Free form binary Public Const HKEY_CURRENT_USER = &H80000001 Public Const HKEY_LOCAL_MACHINE = &H80000002
Public ReturnCode As Long
Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Public 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 Public 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 Function RegQueryStringValue(ByVal hKey As Long, ByVal strValueName As String) As String Dim lResult As Long, lValueType As Long, strBuf As String, lDataBufSize As Long Dim pos As Long 'retrieve nformation about the key lResult = RegQueryValueEx(hKey, strValueName, 0, lValueType, ByVal 0, lDataBufSize) If lResult = 0 Then If lValueType = REG_SZ Then 'Create a buffer strBuf = String(lDataBufSize, Chr$(0)) 'retrieve the key's content lResult = RegQueryValueEx(hKey, strValueName, 0, 0, ByVal strBuf, lDataBufSize) If lResult = 0 Then 'Remove the unnecessary chr$(0)'s pos = InStr(strBuf, Chr(0)) If pos > 0 Then RegQueryStringValue = Left$(strBuf, InStr(1, strBuf, Chr$(0)) - 1) Else RegQueryStringValue = strBuf End If End If ElseIf lValueType = REG_BINARY Then Dim strData As Integer 'retrieve the key's value lResult = RegQueryValueEx(hKey, strValueName, 0, 0, strData, lDataBufSize) If lResult = 0 Then RegQueryStringValue = strData End If End If End If End Function
Public Function GetString(hKey As Long, strPath As String, strValue As String) Dim ret 'Open the key RegOpenKey hKey, strPath, ret 'Get the key's content GetString = RegQueryStringValue(ret, strValue) 'Close the key RegCloseKey ret End Function
Public Sub SaveString(hKey As Long, strPath As String, strValue As String, strData As String) Dim ret 'Create a new key RegCreateKey hKey, strPath, ret 'Save a string to the key RegSetValueEx ret, strValue, 0, REG_SZ, ByVal strData, LenB(StrConv(strData, vbFromUnicode)) 'close the key RegCloseKey ret End Sub
Public Sub SaveStringLong(hKey As Long, strPath As String, strValue As String, strData As String) Dim ret 'Create a new key RegCreateKey hKey, strPath, ret 'Set the key's value RegSetValueEx ret, strValue, 0, REG_BINARY, CByte(strData), 4 'close the key RegCloseKey ret End Sub
Public Sub DelSetting(hKey As Long, strPath As String, strValue As String) Dim ret 'Create a new key RegCreateKey hKey, strPath, ret 'Delete the key's value RegDeleteValue ret, strValue 'close the key RegCloseKey ret End Sub