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

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

不知道qboxcom是什么,如果你问的是选择的话,请把题目和内容再整理下。

TOP

刚才大概看了一下 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:假》 一个布尔值。

TOP

是否可以实现
按下 是(Y) 执行GOTO
按下 否(N) 也执行GOTO (EXIT)

@Echo Off
Nircmd qbox "是否启动计算器" "询问窗口" "Goto Start"
:Start
Start calc.exe

实际的效果是.. 按下 是(Y) 和否(N) 都直接往下执行 Start calc.exe

TOP

本帖最后由 冷玉公子 于 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
复制代码

TOP

导入到Tmp.Bat 却让Nircmd 执行dd.bat ??好像没写好
Tmp.Bat里面好像怪怪的

这个方法跟我用的很相似采用预先导入的方式,问题就在于它会额外产生出一个BAT,感觉不够一致性,要修改也比较麻烦
研究了很久,想要的效果就是要有询问的窗口,而不是在BAT窗口内显示
谢谢各位热情的解答,看来这是nircmd的瓶颈

TOP

本帖最后由 冷玉公子 于 2011-9-14 22:03 编辑

昨天太晚了,代码确实有点问题,修改了一下。
哈哈 不好意思

哦 忘了加一个将dd.bat删除的代码了,也就是说先要使用的命令导入到一个批处理中,然后如果QBOX点了确定就执行dd.bat ,然后dd.bat就会生成一个文件然后由IF来判断是否有这个文件,如果有有证明点了确定 ,如果没有就是点了取消。修改一下就好,加个删除dd.bat的命令。就OK了 我直接修改原帖。

TOP

返回列表