摘要:本文主要向大家介绍了VC编程实现注册表监控,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。
本文主要向大家介绍了VC编程实现注册表监控,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。
监视HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run项
#include <windows.h>
//定义一个监视注册表启动项的函数
int reg()
{
HANDLE hNotify;
HKEY hKeyx;
//DWORD dwRes;
hNotify = CreateEvent(NULL, //不使用SECURITY_ATTRIBUTES结构
FALSE, //不自动重置
TRUE, //设置初始状态
"RegistryNotify" //事件对象的名称
);
if (hNotify == 0)
{
MessageBox(NULL,"CreateEvent failed"," ",MB_OK);
ExitProcess(0);
}
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, //根键
"Software\\Microsoft\\Windows\\CurrentVersion\\Run", //子键
0, //reserved
KEY_NOTIFY, //监视用
&hKeyx //保存句柄
) != ERROR_SUCCESS)
{
CloseHandle(hNotify);
MessageBox(NULL,"RegOpenKeyEx failed"," ",MB_OK);
ExitProcess(0);
}
if (RegNotifyChangeKeyValue(hKeyx, //监视子键句柄
TRUE, //监视此项的子键
REG_NOTIFY_CHANGE_NAME | REG_NOTIFY_CHANGE_LAST_SET, //监视增加或删除了子键,监视键值发生是否改变
hNotify, //接受注册表变化事件的事件对象句柄
TRUE //注册表变化前报告
) != ERROR_SUCCESS)
{
CloseHandle(hNotify);
RegCloseKey(hKeyx);
MessageBox(NULL,"RegNotifyChangeKeyValue failed"," ", MB_OK);
ExitProcess(0);
}
if (WaitForSingleObject(hNotify, INFINITE) != WAIT_FAILED)
{
MessageBox(NULL,"注册表有改动"," ",MB_OK);
}
CloseHandle(hNotify);
RegCloseKey(hKeyx);
return 0;
}
void main()
{
// DWORD ID;
// CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)reg, NULL, 0, &ID); //创建线程
// printf("ok\n");
reg();
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言VC/MFC频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号