Board logo

标题: 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 [提示消息] [标题] [命令]
例如:
  1. Nircmd Qbox "是否启动计算器" "询问窗口" "calc.exe"
复制代码
还请仔细查看Nircmd的说明文档,介于楼主问的问题,要使用Goto语句,写法如下。
  1. @Echo Off
  2. Nircmd qbox "是否启动计算器" "询问窗口" "Goto Start"
  3. :Start
  4. 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足矣如果是想利用这个提示框的话,还有其他办法来实现,代码如下:
  1. @Echo Off
  2. If Exist %Temp%\Tmp Del /Q /F %Temp%\Tmp
  3. Echo @Echo Off>Tmp.Bat
  4. Echo Echo Yes^>%Temp%\Tmp>>Tmp.Bat
  5. Nircmd qbox "是否启动计算器" "询问窗口" Tmp.Bat
  6. @Rem 经测试Nircmd的Qbox只能直接执行程序而不能嵌入Cmd命令,楼主可以再研究下它本身的命令功能。
  7. Ping -n 127.0.0.1 > Nul
  8. If Exist %Temp%\Tmp (
  9. Del /Q /F %Temp%\Tmp
  10. Del /Q /F Tmp.Bat
  11. Goto Start
  12. )Else (
  13. Del /Q /F %Temp%\Tmp
  14. Del /Q /F Tmp.Bat
  15. Goto Exit
  16. )
  17. :Start
  18. Echo calc.exe
  19. Pause
  20. :Exit
  21. 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