首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查找哪些注册表值发生了更改?

如何查找哪些注册表值发生了更改?
EN

Stack Overflow用户
提问于 2012-05-09 05:54:44
回答 3查看 2.5K关注 0票数 0

我正在尝试找出注册表发生了哪些更改,或者启动了哪些进程。例如:如果我改变windows-explorer的视图来显示隐藏的文件和文件夹,我想看看哪个注册表项被改变了。

有人建议使用进程监视器,但a)注册表访问太多,b)我找不到注册表的任何更改。(虽然我记得我读过,但这是对控制它的注册表的更改)

我这样做是因为我想让我的程序做同样的事情。

用C#来回答就可以了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-09 07:25:41

RegNotifyChangeKeyValue()是您需要调用的系统函数。我从未见过任何人试图在C#中使用它,但使用它应该不会比调用任何其他非托管代码更麻烦。基本上,你调用它,它在第一次更改后返回,你再次调用它,并等待下一个chande。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms724892%28v=vs.85%29.aspx

对它的用法有相当好的描述。

票数 1
EN

Stack Overflow用户

发布于 2012-05-09 07:05:54

是的,哇,这可能会变得非常棘手,因为注册表可能会很大。在过去,我会导出注册表的一个分支,比如HKEY_LOCAL_MACHINE\SOFTWARE\InnaTech,然后运行一些我怀疑正在编辑该分支中的内容的程序,然后再次将其导出到另一个文件中。如果分支不是很大,那么我可以查看它的差异,否则我会使用普通的比较程序ala WinDiff来查找任何更改。

票数 1
EN

Stack Overflow用户

发布于 2012-05-09 05:58:58

http://www.mydigitallife.info/trick-to-enable-show-hidden-files-and-folders-in-windows/

转到“开始”菜单,然后单击“运行”(Windows Vista和Windows 7使用开始搜索)。键入RegEdit并按Enter键以运行注册表编辑器。导航到以下注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL

在右窗格中,验证CheckedValue值数据是否为REG_DWORD类型。如果不是(比如属于REG_SZ),则删除CheckedValue值数据。如果CheckedValue已被删除,则创建一个新DWORD值并将其命名为CheckedValue。双击CheckedValue并将其值数据更改为1(病毒可能会将其更改为0或2)。在同一注册表项中,验证Type值数据是否为REG_SZ类型,并且是否具有值数据单选按钮。如果没有,请将其设置为无线电。病毒可能会将其更改为空白。将系统设置为显示或显示所有隐藏的文件、文件夹和驱动器,然后检查是否显示隐藏的文件和文件夹。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10507141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档