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

Nircmd询问对话框box的疑问

[复制链接]
发表于 2011-9-12 22:36:53 | 显示全部楼层 |阅读模式
本帖最后由 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:17 | 显示全部楼层
不知道qboxcom是什么,如果你问的是选择的话,请把题目和内容再整理下。
发表于 2011-9-13 10:11:45 | 显示全部楼层
刚才大概看了一下 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:假》 一个布尔值。
 楼主| 发表于 2011-9-13 21:23:45 | 显示全部楼层
是否可以实现
按下 是(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:34 | 显示全部楼层
本帖最后由 冷玉公子 于 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
复制代码
 楼主| 发表于 2011-9-14 21:44:51 | 显示全部楼层
导入到Tmp.Bat 却让Nircmd 执行dd.bat ??好像没写好
Tmp.Bat里面好像怪怪的

这个方法跟我用的很相似采用预先导入的方式,问题就在于它会额外产生出一个BAT,感觉不够一致性,要修改也比较麻烦
研究了很久,想要的效果就是要有询问的窗口,而不是在BAT窗口内显示
谢谢各位热情的解答,看来这是nircmd的瓶颈
发表于 2011-9-14 22:01:29 | 显示全部楼层
本帖最后由 冷玉公子 于 2011-9-14 22:03 编辑

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

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

本版积分规则

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

GMT+8, 2026-3-18 00:15 , Processed in 0.018384 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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