找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 166165|回复: 64

[注册表类] [已解决]批处理监视注册表项

[复制链接]
发表于 2012-6-3 19:52:56 | 显示全部楼层 |阅读模式
本帖最后由 wh1234567 于 2012-6-16 14:44 编辑

当监视某个注册表项名称数值为29时就执行我的命令,如果监视数值不是29就不执行命令,如何写?
例如
注册表项"HKEY_LOCAL_MACHINE\333" 里右边的名称"444" 里的数值29

我的命令放在下面

评分

参与人数 1PB +2 收起 理由
zqz0012005 + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-6-4 08:55:10 | 显示全部楼层
 楼主| 发表于 2012-6-4 11:10:50 | 显示全部楼层
这个看不懂啊
发表于 2012-6-4 13:16:46 | 显示全部楼层
别整HKLM\333,那个地方建立不了新项,就整HKLM\Software\333吧。

  1. for /f "skip=4 tokens=1,2,*" %%i in ('reg query "HKLM\Software\333" /v 444') do set Ver=%%k
  2. if not %Ver%==29 goto :eof
  3. ::你的命令
  4. echo OK!Ver is 29.
  5. pause
复制代码
发表于 2012-6-4 13:39:44 | 显示全部楼层
回复 3# wh1234567


    边看边试,就懂了。
发表于 2012-6-4 13:50:50 | 显示全部楼层
你的目的是监视还是查询?
 楼主| 发表于 2012-6-4 15:17:07 | 显示全部楼层
本帖最后由 wh1234567 于 2012-6-4 15:19 编辑

回复 4# tz_being

不行,闪了下就没了
另外说下,不是建立新项,而是监视那里的数值29
 楼主| 发表于 2012-6-4 15:17:27 | 显示全部楼层
回复 6# powerbat

是监视
发表于 2012-6-4 16:24:07 | 显示全部楼层
回复 8# wh1234567
vbs
  1. Hive = "HKEY_LOCAL_MACHINE"
  2. KeyPath = "Software\333"
  3. ValueName = "444"

  4. Set ws = CreateObject("WScript.Shell")
  5. Set Sink = WScript.CreateObject("WbemScripting.SWbemSink", "SINK_")
  6. Set objWMIServices = GetObject("winmgmts:" & _
  7.     "{impersonationLevel=impersonate}!\\.\root\default")
  8. objWMIServices.ExecNotificationQueryAsync Sink, _
  9.     "Select * from RegistryValueChangeEvent Where " & _
  10.     "Hive = '"&Hive&"' and " & _
  11.     "KeyPath = '"&Replace(KeyPath,"","\")&"' and " & _
  12.     "ValueName = '"&ValueName&"'"
  13. WScript.Echo "Listening for Registry Change Events..." & vbCrLf
  14. Do : WScript.Sleep 1000 : Loop

  15. Sub SINK_OnObjectReady(wmiObject, wmiAsyncContext)
  16.     Value = ws.RegRead(Hive&""&KeyPath&""&ValueName)
  17.     'WScript.Echo Value
  18.     if CStr(Value)="29" then ws.Run "a.bat",0
  19. End Sub
复制代码

评分

参与人数 1技术 +1 收起 理由
zqz0012005 + 1 乐于助人

查看全部评分

发表于 2012-6-4 17:48:38 | 显示全部楼层
回复  tz_being

不行,闪了下就没了
另外说下,不是建立新项,而是监视那里的数值29
wh1234567 发表于 2012-6-4 15:17


你注册表的这个地方HKLM\Software\333没有数值,当然自动退出了;如果有数值29就运行你的命令了
 楼主| 发表于 2012-6-4 19:08:22 | 显示全部楼层

本帖最后由 wh1234567 于 2012-6-5 23:42 编辑

回复 10# tz_being


    有数值的,数值就是29也退出了不能执行a.bat
 楼主| 发表于 2012-6-4 19:11:07 | 显示全部楼层
本帖最后由 wh1234567 于 2012-6-4 19:18 编辑

回复 9# powerbat


    我的命令放到哪,提示是英文看不懂啊
我的命令是a.bat这个吗?是代码不行还是我不会使用
 楼主| 发表于 2012-6-4 19:16:37 | 显示全部楼层
最好的办法是不是在进程里全自动监视?
发表于 2012-6-5 21:57:23 | 显示全部楼层
回复 12# wh1234567


    对。a.bat可用其他程序代替。
 楼主| 发表于 2012-6-5 23:41:02 | 显示全部楼层
能不能弄成在进程里全自动监视的那种?当监视到数值变化到29就自动执行a.bat,不是运行一次监视一次,而是运行后就在进程里全自动监视
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 06:18 , Processed in 0.022990 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表