我需要使用sendkeys函数关闭命令提示符窗口,但是当我使用下面的代码时,它不起作用,因为正在运行某些betch文件,所以它没有采用以下选项。
require 'win32ole'
system("start cmd.exe")
sleep(5)
# Create an instance of the Wscript Shell:
wsh = WIN32OLE.new('Wscript.Shell')
# Try to activate the command window:
if wsh.AppActivate('cmd.exe')
sleep(1)
wsh.SendKeys('cd \\')
wsh.SendKeys('{ENTER}')
# change the directory path where mtn folder is residing
wsh.SendKeys('cd ')
wsh.SendKeys "C://mtn-3//mtn-2.2//"
wsh.SendKeys('{ENTER}')
wsh.SendKeys('cd bin')
wsh.SendKeys('{ENTER}')
#run the cad test node file
wsh.SendKeys('CadTestNode.bat')
wsh.SendKeys('{ENTER}')
wsh1.SendKeys('Exit')
wsh1.SendKeys('{ENTER}')
我也尝试用下面的代码替换最后两行来终止进程。
wsh.SendKeys "^(c)"
wsh.SendKeys('{ENTER}')
但仍然无法终止在命令提示符下运行的进程。
是否还有其他方法可以终止在命令提示符窗口中运行的批处理进程?
答案 0 :(得分:1)
试试这个:
wsh.SendKeys("^C")
在MSDN SendKeys Method中指定此键的以下字符:
SHIFT:+
CTRL:^
ALT:%
示例:
wsh.SendKeys("+{TAB}") # SHIFT+TAB
wsh.SendKeys("^V") # CTRL+V
wsh.SendKeys("%{F4}") # ALT+F4
答案 1 :(得分:0)
可以通过将密钥放入数组来发送密钥组合。
text_field.send_keys [ :shift, 'a']
将“A”放入text_field。在您的示例中,
wsh1.send_keys [ :control, 'c']
应该有用。