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

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

[复制链接]
发表于 2012-6-6 00:09:49 | 显示全部楼层
回复 15# wh1234567


    这就是6楼问你的目的,9楼的代码正是运行后一直监视。
 楼主| 发表于 2012-6-6 09:24:26 | 显示全部楼层
数值是29也不自动执行a.bat啊,咋回事?
 楼主| 发表于 2012-6-6 09:29:55 | 显示全部楼层
Listening for Registry Change Events...


脚本:        C:\Documents and Settings\Administrator\桌面\新建 文本文档 (2).vbs
行:        18
字符:        5
错误:        无法打开注册键值 "HKEY_LOCAL_MACHINE\333\444" 进行读取。
代码:        80070002
源:         WshShell.RegRead

这个代码需修正,应该是"HKEY_LOCAL_MACHINE\333" 里右边的名称"444
而不是HKEY_LOCAL_MACHINE\333\444
发表于 2012-6-6 10:27:55 | 显示全部楼层
回复 18# wh1234567

为了便于显示,作了少许修改,但不影响原有功能。
C:\Users\root\Desktop>type a.bat
@echo hello&pause

C:\Users\root\Desktop>type a.vbs
...
Sub SINK_OnObjectReady(wmiObject, wmiAsyncContext)
    Value = ws.RegRead(Hive&"\"&KeyPath&"\"&ValueName)
    WScript.Echo "Registry Value Changed: " & Value
    if CStr(Value)="29" then ws.Run "a.bat" ',0 '后面加0表示隐藏窗口运行

End Sub

C:\Users\root\Desktop>start /b cscript C:\Users\root\Desktop\a.vbs

Listening for Registry Change Events...

C:\Users\root\Desktop>reg add hklm\Software\333 /v 444 /d 28 /f
操作成功完成。

Registry Value Changed: 28

C:\Users\root\Desktop>reg add hklm\Software\333 /v 444 /d 29 /f
操作成功完成。

Registry Value Changed: 29

C:\Users\root\Desktop>


vbs运行a.bat弹出了一个窗口:
hello
请按任意键继续. . .
 楼主| 发表于 2012-6-6 13:02:03 | 显示全部楼层
系统找不到指定的路径。
hello
请按任意键继续. . .
发表于 2012-6-6 13:22:04 | 显示全部楼层
回复 20# wh1234567


    你想说什么呢?
 楼主| 发表于 2012-6-6 13:31:09 | 显示全部楼层
回复 21# powerbat


    不管用,没效果
发表于 2012-6-6 13:35:06 | 显示全部楼层
回复 22# wh1234567


那你的
hello
请按任意键继续. .
是怎么来的呢?

和你们交流真是累死了。。。
 楼主| 发表于 2012-6-6 13:57:08 | 显示全部楼层
hello
请按任意键继续. .
按任意键后就自动退出了,进程里也看不到,注册表里相应的29也没见变化,我的a.bat是处理注册表项的,但没见自动执行a.bat
我的a.bat和你刚才这个批处理是在相同目录下的
 楼主| 发表于 2012-6-6 13:58:57 | 显示全部楼层
是不是刚才你这个代码不完整啊?
发表于 2012-6-6 14:05:12 | 显示全部楼层
回复 25# wh1234567


    你把19楼的内容好好看一遍,对比一下你是哪里写的有问题。
 楼主| 发表于 2012-6-6 16:37:44 | 显示全部楼层
我就是复制的你这个代码啊,
代码里... 这个是什么意思?
发表于 2012-6-6 16:44:50 | 显示全部楼层
19楼引用的内容是在cmd中手动执行命令进行演示的过程。
...是英文省略号,表示省略9楼代码的相同部分以免浪费,还特意用蓝色区分与9楼代码不同的地方。浅蓝色是vbs的执行结果。
 楼主| 发表于 2012-6-6 16:48:05 | 显示全部楼层
C:\Users\root\Desktop
为什么指定路径,在当前路径不行吗
我的批处理只能自己创建个文件夹放进去?哎
发表于 2012-6-6 17:17:06 | 显示全部楼层
回复 29# wh1234567


    省略路径当然也可以。
那是我的cmd初始目录不是C:\Users\root\Desktop,而在其他地方运行过那条命令,后来我切换到桌面,直接按↑↓方向键调出历史命令,懒得重新输入。

你的bat随便放在哪里都可以,只要在ws.Run那里填上正确的路径即可(相对路径也行)。
这个vbs的作用只是监视注册表和启动bat,你在bat里可以随便写,已经与这个vbs无关了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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