jericho0711 发表于 2012-12-11 13:31:53

CMD指令?

剛剛發現使用run("cmd")呼叫出來的cmd視窗,如果在視窗下輸入ping -t 192.168.1.1後,如果想要停止ping的動作時,按下CTRL+C會無法停止ping ip的動作,但是如果使用windows呼叫出來的cmd視窗,可以正常的停止ping ip動作,不知道有沒有人知道是什麼原因?

afan 发表于 2012-12-11 14:11:59

试了,没问题。都可以停止

轩辕小妖 发表于 2012-12-11 14:16:47

回复 2# afan


    A版,我也试了,真的不可以哦,run runwait shellexecute等都是不行~~

afan 发表于 2012-12-11 14:31:02

回复 3# 轩辕小妖


    我的OS是XPsp3(x86),测试了多次,都正常

heavenm 发表于 2012-12-11 20:49:17

回复afan


    A版,我也试了,真的不可以哦,run runwait shellexecute等都是不行~~
轩辕小妖 发表于 2012-12-11 14:16 http://autoitx.com/images/common/back.gif
确实是这样子
我也是一样的问题
XP SP3

zch11230 发表于 2012-12-11 20:55:17

还真是这样WIN7 x64

annybaby 发表于 2012-12-11 23:46:15

竟然有这回事.我的也是XP SP3 32位`~

happytc 发表于 2012-12-13 00:21:08

回复 4# afan


    我测试的跟你一样的系统,的确如楼主所说。很奇怪的事!
用au3如下面的代码,的确不能用ctrl-c中断
Run(@ComSpec & ' /k' & 'ping -t "www.baidu.com"')

但若用vbs,如下面的代码,就可以用ctrl-c中断
Set objShell = CreateObject("Wscript.Shell")
objShell.Run("%comspec% /k ping -t www.baidu.com"), 1, TRUE
不知道au3内部是如何调用cmd的,可能是由于Ctrl + C 是缓存中唯一的键序列, 当且仅当 操作系统 尝试从 键盘缓存中读取时, Ctrl + C 才会被检测到的缘故吧。因为此时可能au3把cmd做为子程序来启动的,操作系统可能把这个键值传给au3了。象Ctrl-Break(也就相当于DOS 下的 1BH 中断)因为不会进入键盘缓存,则立即被解释了。

afan 发表于 2012-12-13 01:03:25

回复 8# happytc


    你们都是用的 SciTe 编辑器运行的吧?我从不用那厮…… 我是直接运行脚本的。

xms77 发表于 2012-12-13 01:31:15

回复 9# afan
原来是SciTe Editor的问题。

jericho0711 发表于 2012-12-13 16:26:26

回复happytc


    你们都是用的 SciTe 编辑器运行的吧?我从不用那厮…… 我是直接运行脚本的。
afan 发表于 2012-12-13 01:03 http://www.autoitx.com/images/common/back.gif

剛剛試了一下,真的使用SciTe 編輯器運行的話,會沒辦法使用Ctrl + C,但是如果直接運行腳本的話是正常的,沒想到還有這種差異...
页: [1]
查看完整版本: CMD指令?