定义子程序和函数的问题!!急
代码如下:
Private Sub Command1_Click() '去掉警告信息
Dim hkey As Long
RegCreateKey HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows NT\CurrentVersion\Winlogon", hkey
RegDeleteValue hkey, "legalnoticecaption"
RegDeleteValue hkey, "LegalNoticeText"
MsgBox "已完成设置,请重新启动计算机!", , "提示信息"
End Sub
Private Sub Command2_Click() '添加警告信息
Dim hkey As Long
RegOpenKeyEx HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows NT\CurrentVersion", 0, 0, hkey
RegCreateKey HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows NT\CurrentVersion\Winlogon", hkey
Dim a As Byte
a = &O1
RegSetValueEx hkey, "legalnoticecaption", 0, REG_SZ, ByVal Text1.Text, 255
RegSetValueEx hkey, "LegalNoticeText", 0, REG_SZ, ByVal Text2.Text, 255
MsgBox "已完成设置,请重新启动计算机!", , "提示信息"
End Sub
RegCreateKey为何显示子程序或函数未定义??又如何定义?
参考答案:该函数是API函数,将下面代码保存为Reg.Bas就可以正常使用了。
'养成好习惯代表所有变量都需要先定义后使用
Option Explicit
'根键常数
Public Const HKEY_CLASSES_ROOT = &H***********
Public Const HKEY_CURRENT_USER = &H***********
Public Const HKEY_LOCAL_MACHINE = &H***********
Public Const HKEY_USERS = &H***********
Public Const HKEY_PERFORMANCE_DATA = &H***********
Public Const HKEY_CURRENT_CONFIG = &H***********
Public Const HKEY_DYN_DATA = &H***********
'键值类型
Public Const REG_NONE = 0
Public Const REG_SZ = 1 '字符串值
Public Const REG_EXPAND_SZ = 2
Public Const REG_BINARY = 3 '二进制值
Public Const REG_DWORD = 4 'DWORD 值
Public Const REG_DWORD_BIG_ENDIAN = 5
Public Const REG_MULTI_SZ = 7
'----声明有关注册表API函数 --Start----
'建立一个新的主键
Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" _
( _
ByVal hKey As Long, _
ByVal lpSubKey As String, _
ByRef phkResult As Long _
) As Long
'打开一个主键 返回0代表打开成功,返回2代表打开失败
Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" _
( _
ByVal hKey As Long, _
ByVal lpSubKey As String, _
ByRef phkResult As Long _
) As Long
'删除一个主键
Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" _
( _
ByVal hKey As Long, _
ByVal lpSubKey As String _
) As Long
'关闭一个主键 返回0代表关闭成功,6代表关闭失败
Public Declare Function RegCloseKey Lib "advapi32.dll" _
( _
ByVal hKey As Long _
) As Long
'创建或改变一个键值,lpData应由缺省的ByRef型改为ByVal型
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, _
ByVal lpData As Any, _
ByVal cbData As Long _
) As Long
'查询一个键值,lpData应由缺省的ByRef型改为ByVal型
Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" _
( _
ByVal hKey As Long, _
ByVal lpValueName As String, _
ByVal lpReserved As Long, _
ByRef lpType As Long, _
ByVal lpData As Any, _
ByRef lpcbData As Long _
) As Long
'删除一个键值
Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" _
( _
ByVal hKey As Long, _
ByVal lpValueName As String _
) As Long
'----声明有关注册表API函数 End----