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

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

[复制链接]
发表于 2012-6-7 17:26:42 | 显示全部楼层
我是路过的……

评分

参与人数 1PB -2 收起 理由
zqz0012005 -2 严禁灌水

查看全部评分

 楼主| 发表于 2012-6-7 17:29:22 | 显示全部楼层
本帖最后由 wh1234567 于 2012-6-7 17:34 编辑

刚才可能是我多操作了几次导致系统或这个批处理出现问题,现在我将进程全部删除后程序运行29就执行,
只是你37楼的type a.vbs这个我没创建,可能是a.bat吧?其他显示正常,现在只修正我刚说的那2个问题就估计完美了,很感谢您帮我帮到底,呵呵呵

vbs的
发表于 2012-6-7 17:59:38 | 显示全部楼层
回复 47# wh1234567


你为什么不按我说的来呢?没有a.vbs和a.bat你建一个不就行了,内容已经type出来了。
现在重点是为什么我测试没问题而你一搞就报错,把这个原因找到其他功能随便加。
 楼主| 发表于 2012-6-7 18:24:22 | 显示全部楼层
本帖最后由 wh1234567 于 2012-6-7 18:28 编辑

a.bat这是我的批处理,a.vbs这个是vbs代码程序吧,没错,就修正那2个问题就行,我理解你说的意思了,呵呵呵
发表于 2012-6-7 18:29:46 | 显示全部楼层
回复 49# wh1234567


    我怎么觉得你脑子还没转过弯来呢?
 楼主| 发表于 2012-6-7 19:06:38 | 显示全部楼层
呵呵呵,测试能行,只是得修正那2个问题就行
 楼主| 发表于 2012-6-8 11:40:23 | 显示全部楼层
在线等......
发表于 2012-6-8 12:08:21 | 显示全部楼层
你说按37楼的步骤测试能行,那为什么还会出现第2个问题“弹出错误窗口”?出现错误了就说明不可行,你为什么要说测试可行呢?
不知道该说你可爱呢还是天真。。。
 楼主| 发表于 2012-6-8 19:52:42 | 显示全部楼层
本帖最后由 wh1234567 于 2012-6-8 19:56 编辑

打开一个cmd,按37楼的步骤把那些红色的命令逐条运行一次,确认没问题能正常执行,也不弹出错误窗口。
但是如果直接运行a.vbs的话当数值变化成29时就会弹出那个错误窗口,同时也会自动执行a.bat。
为什么?
发表于 2012-6-8 22:51:35 | 显示全部楼层
我记得我写了一个例子,监控注册表的……………………如果你看那个有问题再问我。
 楼主| 发表于 2012-6-8 23:31:39 | 显示全部楼层
本帖最后由 wh1234567 于 2012-6-9 00:07 编辑

回复 53# powerbat

不好意思,我找到错误的原因了,是因为自动执行a.bat,这个批处理将444删除了导致会弹出那个错误窗口
你修正下那个当第一次运行时如果原数值就是29的话无法执行a.bat的问题吧
另外,我想能不能将第一次运行时弹出的窗口和数值变化时弹出的窗口过3秒钟后自动关闭,不需要手动点击确定的那种,还有与其发现数值是29时执行a.bat还不如直接用vbs将数值29自动修改为20,你看行不行,那个a.bat就不需要了。
标题能不能显示为:注册表监视小工具
发表于 2012-6-9 08:59:03 | 显示全部楼层
回复 55# bluewing009


    我表示看不懂。目测楼主更看不懂。
发表于 2012-6-9 13:28:53 | 显示全部楼层
不听老人言,吃亏在眼前!
此帖可以说是最长最无聊的帖子!
人家早就说了让你把代码帖出来,你偏不听,非说自己代码和别人一样,结果怎样?而且自己有什么需求、碰到什么问题都不描述清楚,靠别人像挤牙膏似的问一点你才说一点,把大家的耐心都耗尽了,最终没人愿意回答你的问题了。楼主应该好好学一下提问的方法。
提问的智慧 http://www.bathome.net/thread-4054-1-1.html
 楼主| 发表于 2012-6-10 21:03:40 | 显示全部楼层
回复 53# powerbat

你好,辛苦您了,不知道你还能不能再按照56楼的更新下这个vbs 呢?
发表于 2012-6-10 22:00:17 | 显示全部楼层
  1. Hive = "HKEY_LOCAL_MACHINE"
  2. KeyPath = "Software\333"
  3. ValueName = "444"

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

  17. Sub SINK_OnObjectReady(wmiObject, wmiAsyncContext)
  18.     Value = ws.RegRead(Hive&""&KeyPath&""&ValueName)
  19.     'WScript.Echo Value
  20.     if CStr(Value)="29" then
  21.         ws.Popup "注册表值变成了29", 3, "通知"
  22.         ws.RegWrite Hive&""&KeyPath&""&ValueName, 20, "REG_DWORD"
  23.     end if
  24. End Sub
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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