标题: Nircmd询问对话框box的疑问 [打印本页]
作者: dnagl 时间: 2011-9-12 22:36 标题: Nircmd询问对话框box的疑问
本帖最后由 dnagl 于 2011-9-13 07:03 编辑
qboxcom如何实现” YES是” “ NO否” 对应到goto 某段落
因为回答”YES是” 往下继续运行
回答”NO否” 也是往下继续运行
似乎没差异 还是用法有问题?
Qboxcom 是 Nircmd 的指令
说明: qboxcom qboxcom [message text] [title] [NirCmd Command]
在屏幕上显示一个询问对话框。如果用户回答是,则执行参数[NirCmd Command]中指定的NirCmd命令。
例:
qboxcom "Do you want to lock your workstation ?" "question" lockws
qboxcom "Do you want to turn off the monitor ?" "monitor" monitor off
作者: 冷玉公子 时间: 2011-9-12 23:46
不知道qboxcom是什么,如果你问的是选择的话,请把题目和内容再整理下。
作者: 冷玉公子 时间: 2011-9-13 10:11
刚才大概看了一下 Nircmd 这个命令
Qbox 属于它的一个子命令吧 我是这样理解的。
命令格式为:
Nircmd Qboxcom [提示消息] [标题] [命令]
例如:- Nircmd Qbox "是否启动计算器" "询问窗口" "calc.exe"
复制代码
还请仔细查看Nircmd的说明文档,介于楼主问的问题,要使用Goto语句,写法如下。- @Echo Off
- Nircmd qbox "是否启动计算器" "询问窗口" "Goto Start"
- :Start
- Start calc.exe
复制代码
也就是说第三个参数中是要执行的命令,Qbox 打开了一个提示窗口选择《是》则返回《Ture:真》选择否则返回《False:假》 一个布尔值。
作者: dnagl 时间: 2011-9-13 21:23
是否可以实现
按下 是(Y) 执行GOTO
按下 否(N) 也执行GOTO (EXIT)
@Echo Off
Nircmd qbox "是否启动计算器" "询问窗口" "Goto Start"
:Start
Start calc.exe
实际的效果是.. 按下 是(Y) 和否(N) 都直接往下执行 Start calc.exe
作者: 冷玉公子 时间: 2011-9-14 00:28
本帖最后由 冷玉公子 于 2011-9-14 22:02 编辑
具目前对Nircmd的了解,还真没有办法,因为还没有测试出Qbox的返回值信息值。
官方也没有对此做任何说明,如果楼主只是要判断的话我觉得用IF足矣如果是想利用这个提示框的话,还有其他办法来实现,代码如下:- @Echo Off
- If Exist %Temp%\Tmp Del /Q /F %Temp%\Tmp
- Echo @Echo Off>Tmp.Bat
- Echo Echo Yes^>%Temp%\Tmp>>Tmp.Bat
- Nircmd qbox "是否启动计算器" "询问窗口" Tmp.Bat
- @Rem 经测试Nircmd的Qbox只能直接执行程序而不能嵌入Cmd命令,楼主可以再研究下它本身的命令功能。
- Ping -n 127.0.0.1 > Nul
- If Exist %Temp%\Tmp (
- Del /Q /F %Temp%\Tmp
- Del /Q /F Tmp.Bat
- Goto Start
- )Else (
- Del /Q /F %Temp%\Tmp
- Del /Q /F Tmp.Bat
- Goto Exit
- )
- :Start
- Echo calc.exe
- Pause
-
- :Exit
- Exit
复制代码
作者: dnagl 时间: 2011-9-14 21:44
导入到Tmp.Bat 却让Nircmd 执行dd.bat ??好像没写好
Tmp.Bat里面好像怪怪的
这个方法跟我用的很相似采用预先导入的方式,问题就在于它会额外产生出一个BAT,感觉不够一致性,要修改也比较麻烦
研究了很久,想要的效果就是要有询问的窗口,而不是在BAT窗口内显示
谢谢各位热情的解答,看来这是nircmd的瓶颈
作者: 冷玉公子 时间: 2011-9-14 22:01
本帖最后由 冷玉公子 于 2011-9-14 22:03 编辑
昨天太晚了,代码确实有点问题,修改了一下。
哈哈 不好意思
哦 忘了加一个将dd.bat删除的代码了,也就是说先要使用的命令导入到一个批处理中,然后如果QBOX点了确定就执行dd.bat ,然后dd.bat就会生成一个文件然后由IF来判断是否有这个文件,如果有有证明点了确定 ,如果没有就是点了取消。修改一下就好,加个删除dd.bat的命令。就OK了 我直接修改原帖。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |