(1)、怎样读、写注册表?
(2)、怎样对几个字符进行异或?比如Gw,怎样得到这两个字符异或的结果值?
(3)、怎样获得CPU的id?
(2)、怎样对几个字符进行异或?比如Gw,怎样得到这两个字符异或的结果值?
(3)、怎样获得CPU的id?
解决方案 »
- 请问vba可以调用视图吗?
- 求个循环
- vb怎么判断桌面上有没有QQ聊天窗口?
- 如何处理webbrowser的弹出登陆对话框,使之不弹出,而且完成自动登陆?高人请指点!!
- ======奇怪的多条件查询问题,请各位高手进入指定小弟一下=======
- 为什么vb自己带的数据库程序不能修改及添加字段
- 请教一些健值
- 有在东莞工作的朋友吗?进来领分。
- 如何获得windows的运行时间
- 谁能提供一个将图片写入Access数据库的例子(不是写入图片保存路径,而是写入库中)?
- 如何让Form2永远在Form1的上层,但Form2又不能在系统的顶层?我用SetWindowPos无法实现:(
- 关于用mscomm控件实现计算机和单片机通信的数据格式问题!!急!!急!!急!!
Private Const HKEY_CURRENT_USER = &H80000001 主键
Private Const STANDARD_RIGHTS_ALL = &H1F0000
Private Const KEY_ENUMERATE_SUB_KEYS = &H8
Private Const KEY_SET_VALUE = &H2
Private Const KEY_CREATE_SUB_KEY = &H4
Private Const KEY_QUERY_VALUE = &H1
Private Const KEY_NOTIFY = &H10
Private Const KEY_CREATE_LINK = &H20
Private Const SYNCHRONIZE = &H100000
Private Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))
Private Const REG_MULTI_SZ = 7
Private Const ERROR_SUCCESS = 0&
Private Const READ_CONTROL = &H20000
Private Const REG_SZ = 1
Private Const REG_DWORD = 4
Private Const REG_EXPAND_SZ = 2
Private Const REG_BINARY = 3
Private Const REG_DWORD_BIG_ENDIAN = 5
Private Const REG_DWORD_LITTLE_ENDIAN = 4
Private Const REG_NONE = 0
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 RegCreateKey Lib “advapi32.dll" Alias “RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, 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 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 Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
二、将下列代码放在窗体的Load事件中
Private Sub Form_Load()
Dim hKey As Long 主键的句柄
Dim lpData As String 查询得到的键值
Dim SizeOfData As Long 键值的长度
Dim ValueType As Long 键值的类型
SizeOfData = 150
Dim return_OpenKey As Long 函数调用的返回值
Dim PriKey As String 主键
Dim KeyValue1, KeyValue2 As String 键值名称
PriKey = "北信BITI\People" 主键
KeyValue1 = "教授" 键值名称
KeyValue2 = "学生" 键值名称
下面的函数RegOpenKeyEx取得一个句柄hKey return_OpenKey =RegOpenKeyEx(HKEY_CURRENT_USER, "",0, KEY_ALL_ACCESS, hKey)
下面的函数RegCreateKey建立一个主键,如此键已存在,则打开它 If RegCreateKey(hKey, PriKey, hKey) <> ERROR_SUCCESS Then
MsgBox "create " & PriKey & "Failed"
Exit Sub
End If
Dim KeyData As String 键值
KeyData = "500" 下面的函数RegSetValueEx给指定的键值名称赋键值 If RegSetValueEx(hKey, KeyValue1, 0&, REG_SZ, ByVal KeyData, Len(KeyData) + 1) <> ERROR_SUCCESS Then
MsgBox "SetValue " & KeyValue1 & "Failed "
Exit Sub
End If
KeyData = "15020" 下面的函数RegSetValueEx给指定的键值名称"学生" 赋键值为"15020" If RegSetValueEx(hKey, KeyValue2, 0&, REG_SZ, ByVal KeyData, Len(KeyData) + 1) <> ERROR_SUCCESS Then
MsgBox "SetValue " & KeyValue2 & "Failed "
Exit Sub
End If
return_OpenKey = RegQueryValueEx(hKey, KeyValue1, 0&, REG_SZ, 0&, SizeOfData)
lpData = String(SizeOfData + 1, " ") 下面的函数RegQueryValueEx检索指定键值名称的键值和键值类型 If RegQueryValueEx(hKey, KeyValue1, 0&, REG_SZ, ByVal lpData, SizeOfData) <> ERROR_SUCCESS Then
MsgBox "Query " & KeyValue1 & "Failed"
End If
RegCloseKey (hKey) 释放主键的句柄
End Sub 运行此程序后,打开注册表,我们会发现在主键 HKEY_CURRENT_USER(在此主键下记录本机当前用户的一些信息)下,增加了子键"北信BITI\People",我们还可看到两个指定的键值名称都有正确的键值。从而完成了注册的任务。 注:此程序在VB5.0中运行通过。
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&Declare 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 LongPrivate Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As Any) As Long
Private Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As LongPublic Const REG_SZ = 1 ' Unicode nul terminated string
Public Const REG_DWORD = 4 ' 32-bit numberPublic Function GetString(hKey As Long, strPath As String, 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 IfEnd FunctionPublic Sub SaveString(hKey As Long, strPath As String, strValue As String, 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 SubPublic Function DelString(ByVal hKey As Long, ByVal strPath As String, ByVal strValue As String)
Dim keyhand As Long
Dim r As Long
r = RegOpenKey(hKey, strPath, keyhand)
r = RegDeleteValue(keyhand, strValue)
r = RegCloseKey(keyhand)End FunctionPublic Function DelKeys(ByVal hKey As Long, ByVal strPath As String) ', ByVal strKeys As String) Dim r As Long
r = RegDeleteKey(hKey, strPath)End FunctionPublic Function CreateKeys(ByVal hKey As Long, ByVal strPath As String) Dim keyhand As Long
Dim r As Long
r = RegCreateKey(hKey, strPath, keyhand)
r = RegCloseKey(keyhand)End Function
Public Function ListSubkey(ByVal hKey As Long, ByVal strPath As String) As String Dim keyhand As Long
Dim r As Long
Dim strlistsubkey As String
Dim sName As String, sData As String, Ret As Long, RetData As Long
Dim indexs As Long
Const ERROR_NO_MORE_ITEMS = 259&
Const BUFFER_SIZE As Long = 255
Ret = BUFFER_SIZE
sName = Space(BUFFER_SIZE)
r = RegOpenKey(hKey, strPath, keyhand)
While RegEnumKeyEx(keyhand, indexs, sName, Ret, ByVal 0&, vbNullString, ByVal 0&, ByVal 0&) <> ERROR_NO_MORE_ITEMS
If strlistsubkey = "" Then
strlistsubkey = Left$(sName, Ret)
Else
strlistsubkey = strlistsubkey + "_" + Left$(sName, Ret)
End If
indexs = indexs + 1
Wend
ListSubkey = strlistsubkey
End Function
调用: 列举一个键的所有子键
Dim myarray() As String
sl = ListSubkey(HKEY_LOCAL_MACHINE, "SOFTWARE\") myarray = Split(sl, "_", -1, 1) linkcount = UBound(myarray, 1)
For i = 0 To linkcount
debug.print myarray(i)
Next其他函数调用:
Private Sub keycreate_Click()
Call CreateKeys(HKEY_LOCAL_MACHINE, "SOFTWARE\pjzc\")
End SubPrivate Sub delkey_Click()
Call DelKeys(HKEY_LOCAL_MACHINE, "SOFTWARE\pjzc\")
End SubPrivate Sub regdel_Click()
Call DelString(HKEY_LOCAL_MACHINE, "SOFTWARE\pjzc\", "setupdate")
End SubPrivate Sub regsave_Click()
Call SaveString(HKEY_LOCAL_MACHINE, "SOFTWARE\pjzc\", "setupdate", regvalue.Text)
End SubPrivate Sub regshow_Click()
regvalue.Text = GetString(HKEY_LOCAL_MACHINE, "SOFTWARE\pjzc\", "setupdate")
End Sub
getsetting
2.xor
getsetting
2、asc("G") xor asc("w")
进行一个位操作