监视注册表,,枚举注册表项
来源:互联网 发布:笨办法学python视频 编辑:程序博客网 时间:2024/05/22 00:32
创建注册表项:
lRet = RegOpenKeyEx(HKEY_CURRENT_USER,
_T("Software//hrjd//AscPatch"),
0,
KEY_ALL_ACCESS,
&hKey);
if (lRet != ERROR_SUCCESS)
{
lRet = RegCreateKeyEx(HKEY_CURRENT_USER,
_T("Software//hrjd//AscPatch"),
0,
NULL,
REG_OPTION_VOLATILE, // 不永久变更,机器重启后,内容就消失
KEY_ALL_ACCESS,
NULL,
&hKey,
NULL);
}
WAIFAINFO info;
lRet = RegSetValueEx(hKey,
strKey,
0,
REG_BINARY, // 结构体类型的数据,以二进制形式写入,不能以REG_SZ方式,那样只能写入一个字段
(CONST BYTE*) &info,
sizeof(WAIFAINFO));
RegCloseKey(hKey);
}
监视注册表,枚举注册表项下的键值
HANDLE hEvent = NULL;
HKEY hKey = NULL;
DWORD dwNotifyFilter = REG_NOTIFY_CHANGE_NAME |
REG_NOTIFY_CHANGE_ATTRIBUTES |
REG_NOTIFY_CHANGE_LAST_SET |
REG_NOTIFY_CHANGE_SECURITY;
hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
while (ERROR_SUCCESS != RegOpenKeyEx(HKEY_CURRENT_USER, _T("Software//hrjd//AscPatch"), 0, KEY_NOTIFY|KEY_READ|KEY_ENUMERATE_SUB_KEYS, &hKey))// 要注意访问权限
{
RegOpenKeyEx(HKEY_CURRENT_USER, _T("Software//hrjd//AscPatch"), 0, KEY_NOTIFY|KEY_READ|KEY_ENUMERATE_SUB_KEYS, &hKey);
Sleep(10);
}
RegNotifyChangeKeyValue(hKey, TRUE, dwNotifyFilter, hEvent, TRUE);
while (TRUE)
{
if (WAIT_OBJECT_0 == WaitForSingleObject(hEvent, INFINITE))
{
TCHAR szValue[64];
DWORD dwIndex = 0, dwValue = 64; //dwValue要有初始值
CString strLastTime, strPeerAddress, strValue;
memset(szValue, 0x00, sizeof(szValue));
while (ERROR_NO_MORE_ITEMS != RegEnumValue(hKey, dwIndex, szValue, &dwValue, NULL, NULL, NULL, NULL))
{// RegEnumKeyEx用于枚举子项,RegEnumValue用于枚举键
CString strRead, strTime, strTmp;
strRead = szValue;
strTime = strRead.Left(19);
if (strTime > strLastTime)
{
strLastTime = strTime;
strPeerAddress = strRead.Right(strRead.GetLength() - 20);
strValue = strRead;
}
memset(szValue, 0x00, sizeof(szValue)); // 注意重置参数值
dwValue = 64;
dwIndex++; // 下一个
}
}
RegCloseKey(hKey);
RegOpenKeyEx(HKEY_CURRENT_USER, _T("Software//hrjd//AscPatch"), 0, KEY_NOTIFY|KEY_READ|KEY_ENUMERATE_SUB_KEYS, &hKey);// 继续监视
RegNotifyChangeKeyValue(hKey, TRUE, dwNotifyFilter, hEvent, TRUE);
ResetEvent(hEvent);
}
Sleep(1000);
}
- 监视注册表,,枚举注册表项
- 枚举注册表项
- 驱动枚举注册表项
- 监视注册表项是否发生变化
- 监视注册表RegistryNotifyWindow、RegistryNotifyCallback
- vbs监视注册表变化
- RegNotifyChangeKeyValue监视注册表
- 枚举注册表Key 枚举注册表Value
- 用RegNotifyChangeKeyValue函数监视注册表
- 用RegNotifyChangeKeyValue函数监视注册表
- 通过注册表枚举串口
- Win32注册表枚举
- 注册表枚举键值
- 枚举注册表子键
- MFC注册表枚举串口
- [Win32] 注册表操作(2)枚举注册表
- 注册表
- 注册表
- STL中的常用的vector,map,set,Sort用法 ——20110419
- jvm参数设置 -vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
- js页面跳转
- 错误:非静态的字段、方法或属性“System.Web.UI.Page.Session.get”要求对象引用
- 第一篇日志
- 监视注册表,,枚举注册表项
- Windows7各版本功能区别图解
- HDU 2577
- spring+hibernate中applicationContext.xml详解
- winform+c#之窗体之间的传值
- HTTP 501 错误 – 未实现 (Not implemented)
- VS2010 语法错误: 标识符“__RPC__out_xcount_part” 解决方法
- 内存映射,共享内存
- WinForm嵌入Flash