Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby&;win23ole:如何关闭使用shell.ShellExecute启动的窗口_Ruby_Win32ole - Fatal编程技术网

Ruby&;win23ole:如何关闭使用shell.ShellExecute启动的窗口

Ruby&;win23ole:如何关闭使用shell.ShellExecute启动的窗口,ruby,win32ole,Ruby,Win32ole,我正在使用下面的代码启动ror服务器。有没有一种简单的方法可以不经过查找pid和使用“taskkill”的过程而退出该窗口?我的意思是,毕竟我在“shell”变量中有句柄,不是吗 shell = WIN32OLE.new('Shell.Application') shell.ShellExecute("run_app_server.bat") 使用上述代码,将显示一个运行ror server的窗口。现在我还想从代码中退出它 感谢好吧,您有一个对ole自动化的引用,但是一旦您使用ShellExe

我正在使用下面的代码启动ror服务器。有没有一种简单的方法可以不经过查找pid和使用“taskkill”的过程而退出该窗口?我的意思是,毕竟我在“shell”变量中有句柄,不是吗

shell = WIN32OLE.new('Shell.Application')
shell.ShellExecute("run_app_server.bat")
使用上述代码,将显示一个运行ror server的窗口。现在我还想从代码中退出它


感谢

好吧,您有一个对ole自动化的引用,但是一旦您使用ShellExecute在它自己的窗口中启动一个进程,该进程就属于Windows,我不相信它会通过shell自动化对象以任何方式公开-因此无法使用对象引用来终止它


但是,您也可以像现在一样通过自动化来执行搜索和终止操作,而不是从shell中使用Taskkill,可以进行调整或“转换”。

好的,您可以参考ole自动化,但是一旦使用ShellExecute在自己的窗口中启动进程,这个进程属于Windows,我不相信它是通过shell自动化对象以任何方式公开的,因此无法使用对象引用来终止它

不过,您也可以像现在这样通过自动化进行搜索和杀死,而不是从shell中使用Taskkill——可能是改编或“翻译”