您的位置:首页 > 其它

定位“某项操作”在“注册表”中对应的位置与设置

2012-06-03 14:19 357 查看
很多时候都希望某些设置能够通过“注册表”来修改。但是不知道这些设置,在注册表中需要修改哪些项目和需要指定为什么值。

 

有一种“注册表监视”工具,这种工具能够实现对“操作系统”中运行的进程对“注册表”执行了哪些操作进行监视。由“Sysinternals小组”开发的工具“Procmon”就是这样的一个优秀的工具,它能够监视系统,应用程序在运行的过程中执行过那些操作(包括I/O操作,对注册表的操作等等)。



 

一般这些工具会监视计算机运行的所有程序的工作。系统中所有程序运行过程中执行的任务量是十分庞大的,而且每时每刻都会发生某些操作。要从这庞大的数据中找到,我们需要的针对“注册表”的某个设置信息的话需要一定的技巧。

下面根据一个实例进行发掘:

 我要查找在“轻松访问工具”中


这个设置在注册表中对应的位置。这个操作能够控制是否使用“Windows7鼠标拖拽操作”(Aero Snap)。

1.      使用“Procmon”监视操作

 

首先让Procmon就绪:清除之前的监视记录,并且暂停监视。

 

然后让某项操作准备就绪(比如说一些操作使用复选框或者单选框来选择的,然后点击应用才生效的),就是说设置某项操作但是先不应用它。


使用Aero Snap让Procmon与执行任务的窗口并排在屏幕上显示



 

接下来的操作必须十分迅速(目的是为了让监视的结果更加准确或者说让Procmon监视到的操作基本上只与我们关心的操作相关)。

 

打开Procmon的监视,然后应用操作。等待应用按钮变灰(操作生效)之后马上关闭Procmon的监视。

2.      找到要执行某项操作的进程(这个操作要从哪个程序发起)

 

首先打开这个程序的窗口(如果没有的话直接使用程序的名称)找到它的“窗口名”

然后在“任务管理器”中找到它所对应的进程的名字(或者PID也行)。


右键它“转到程序对应的进程”

 

现在知道了,这项操作是由“Explorer.exe”进程发起的。

3.      过滤“监视结果”

根据执行操作的程序所对应的进程来排除其他程序的操作还有根据所执行的操作排除其他操作的项目(让剩下的操作全部与我们希望看到的操作相关)。点击“过滤”菜单下的“过滤”



过滤“进程”
 

现在希望的找到的是执行某项操作在注册表对应的位置和设置。那么这个操作应该会有“设置注册表值”,那么添加相应的过滤。



 

注意:需要对“过滤”对话框中的项目进行查看,以便满足我们自己的要求。不排除需要的,也不包含不需要的。

4.      根据某项设置对用户和系统的影响进行“过滤”

现在过滤的项目已经比较精简了,排除了多余的项目。不过还能更加精简。

一般来说,对注册表进行设置后的影响。可能会对整个操作系统产生影响(不仅对当前的用户还对其他的用户产生影响),那么这样的键值一般会在HKEY_LOCAL_MACHINE或者HKEY_CLASSES_ROOT,而不会对整个操作系统产生影响的一般会在HKEY_CURRENT_USER中

 

可以这样来“判断”某个操作是对所有用户产生影响还是只对当前用户产生影响的:

在当前会话应用某个设置并且验证生效以后,登录到另一个用户会话来验证是否产生同样的变化。如果是的话那么这个设置会对整个系统中的用户产生影响,否则这个设置仅对当前会话产生影响那么它可能会在HKEY_CURRENT_USER中。当然要注意这是不一定的,要根据情况来进行排除。注意要看情况。

并且还有注意的是有些设置需要同时对HKEY_CURRENT_USER还有HKEY_LOCAL_MACHINE或者其他的键同时进行设置才能生效。




通过以上测试发现这个设置仅对当前会话生效,所以是HKCU
 




通过上面的“过滤”已经十分接近我的“目的”了。
 

5.      还可以继续“过滤”,进行人为的“排除”。

现在根据“合理性”,“不合理性”,“可能性”以及“不可能性”来对剩余的项目进行“过滤”。

把自己认为与任务无关的项目排除在外。比如说:现在执行这个任务是与窗口相关的所以应该不会在HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer中来进行设置因为这是“不合理”的甚至从某些角度来说这是“不可能”的。因为Internet Explorer不算是Windows中“必须”的一部分,所以应该不会把与“窗口”相关的重要设置与IE的注册表项目相关起来。

 



现在用“右键”的“排除”选项来排除与它相关的所有项目。
 

而在HKEY_CURRENT_USER\Contro Panel的话只是“可能”而且“合理”的,因为“控制面板”包含了与用户工作方式,外观相关的——基本全部的设置。

 

然后根据设置的含义来排除接下来的项目。(这个根据个人的理解来进行排除,所以效果会不同)原本这个操作是对“Aero Snap自动窗口排列”进行设置的,所以涉及到的英文会有 Windows(窗口),Arrangement(排列)。

 

还可以根据“设置的键值”来跟踪项目,比如说“选定某个项目”一般值会是“1”,取消则是“0”。可以双击查看,监视的项目来看看设置的键值是0或者1或者其他的东西来进行跟踪。但是要注意这并不是一定的,只是一般的习惯就是这样。(注意要根据设置的含义来判断比如说:

这个设置的含义是禁止“Aero
Snap”功能。所以应该是取消这个功能所以,它设置的值“可能”会是“0”)

 



根据这些找到了这个
 

   通过对这个键进行设置,发现根本不起作用。好像无法对“Windows7窗口自动排列(Aero Snap)”功能产生影响,然后解除对其他注册表键的“过滤”(使其包含HKEY_LOCAL_MACHINE,HKEY_CLASSES_ROOT)发现也没有多少与之相关的了。

注意:不少操作需要对多处注册表项进行设置,所以需要多留意并且反复测试

 

       通过“注销”当前会话并且重新登录,发现这个键值就是影响着“Windows7窗口自动排列”功能。不过“好像”无法立即生效,从其他根(HKEY_LOCAL_MACHINE…)来看也不对这个产生什么影响。只能理解为还需要进行某种刷新操作了。

       接下来也对其他的注册表项目进行检查,发现已经跟设置注册表值没有多大关系了。从“轻松访问中心”中设置来看,它能够立即生效。说明直接对
93a6
“WindowArrangementActive”设置想立即生效还需要进行其他的操作。但是已经完成了任务(挖掘注册表的设置)所以也不需要继续进行下去。注销或者重启就行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐