Private Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecuteA" (ByVal hwnd As Long, ByVal lpszOp As _ String, ByVal lpszFile As String, ByVal lpszParams As String, _ ByVal lpszDir As String, ByVal FsShowCmd As Long) As Long Const SW_SHOWNORMAL = 1 Private Sub Command1_Click() StartDoc = ShellExecute(0, "Open", "c:\a.reg", "", "C:\", SW_SHOWNORMAL) End Sub也可这样调用脚本
下边的程序修改“HKEY_CURRENT_USER\SOFTWARE\MY TEST REG”下"My Reg"的键值。做个参考吧。 Option ExplicitPrivate Const REG_SZ As Long = 1 Private Const REG_BINARY = 3 Private Const REG_DWORD As Long = 4 Private Const HKEY_CURRENT_USER = &H80000001 Private Const KEY_ALL_ACCESS = &H3FPrivate Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long Private 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 Private Sub Command1_Click() SetRegKeyValue HKEY_CURRENT_USER, "SOFTWARE\MY TEST REG", "My Reg", 200, REG_BINARY End SubPrivate Function SetRegKeyValue(lPredefinedKey As Long, sKeyName As String, sValueName As String, vValueSetting As Variant, lValueType As Long) As Boolean Dim lRetVal As Long Dim hKey As Long
SetRegKeyValue = False
lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey) If lRetVal = 0 Then Select Case lValueType Case REG_SZ
Case REG_DWORD
Case REG_BINARY lRetVal = RegSetValueEx(hKey, sValueName, 0&, lValueType, CByte(vValueSetting), 4) End Select RegCloseKey (hKey) If lRetVal = 0 Then SetRegKeyValue = True End If End Function
dwType用REG_BINARY
Shell "regedit c:\a.reg"
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpszOp As _
String, ByVal lpszFile As String, ByVal lpszParams As String, _
ByVal lpszDir As String, ByVal FsShowCmd As Long) As Long
Const SW_SHOWNORMAL = 1
Private Sub Command1_Click()
StartDoc = ShellExecute(0, "Open", "c:\a.reg", "", "C:\", SW_SHOWNORMAL)
End Sub也可这样调用脚本
用RegSetValueEx 修改能否說的具體一些
=================================
好象是这样哦!! ^_^
VB的安裝目錄下
Option ExplicitPrivate Const REG_SZ As Long = 1
Private Const REG_BINARY = 3
Private Const REG_DWORD As Long = 4
Private Const HKEY_CURRENT_USER = &H80000001
Private Const KEY_ALL_ACCESS = &H3FPrivate Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private 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
Private Sub Command1_Click()
SetRegKeyValue HKEY_CURRENT_USER, "SOFTWARE\MY TEST REG", "My Reg", 200, REG_BINARY
End SubPrivate Function SetRegKeyValue(lPredefinedKey As Long, sKeyName As String, sValueName As String, vValueSetting As Variant, lValueType As Long) As Boolean
Dim lRetVal As Long
Dim hKey As Long
SetRegKeyValue = False
lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)
If lRetVal = 0 Then
Select Case lValueType
Case REG_SZ
Case REG_DWORD
Case REG_BINARY
lRetVal = RegSetValueEx(hKey, sValueName, 0&, lValueType, CByte(vValueSetting), 4)
End Select
RegCloseKey (hKey)
If lRetVal = 0 Then SetRegKeyValue = True
End If
End Function