我正在尝试找出注册表发生了哪些更改,或者启动了哪些进程。例如:如果我改变windows-explorer的视图来显示隐藏的文件和文件夹,我想看看哪个注册表项被改变了。
有人建议使用进程监视器,但a)注册表访问太多,b)我找不到注册表的任何更改。(虽然我记得我读过,但这是对控制它的注册表的更改)
我这样做是因为我想让我的程序做同样的事情。
用C#来回答就可以了。
发布于 2012-05-09 07:25:41
RegNotifyChangeKeyValue()是您需要调用的系统函数。我从未见过任何人试图在C#中使用它,但使用它应该不会比调用任何其他非托管代码更麻烦。基本上,你调用它,它在第一次更改后返回,你再次调用它,并等待下一个chande。
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724892%28v=vs.85%29.aspx
对它的用法有相当好的描述。
发布于 2012-05-09 07:05:54
是的,哇,这可能会变得非常棘手,因为注册表可能会很大。在过去,我会导出注册表的一个分支,比如HKEY_LOCAL_MACHINE\SOFTWARE\InnaTech,然后运行一些我怀疑正在编辑该分支中的内容的程序,然后再次将其导出到另一个文件中。如果分支不是很大,那么我可以查看它的差异,否则我会使用普通的比较程序ala WinDiff来查找任何更改。
发布于 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类型,并且是否具有值数据单选按钮。如果没有,请将其设置为无线电。病毒可能会将其更改为空白。将系统设置为显示或显示所有隐藏的文件、文件夹和驱动器,然后检查是否显示隐藏的文件和文件夹。
https://stackoverflow.com/questions/10507141
复制相似问题