如何执行exe文件,并在红宝石中成功

时间:2010-08-09 08:08:49

标签: ruby exec

现在,我想从我的磁盘运行exe文件,完成安装该exe文件后,将显示一条弹出消息,告诉用户已完成安装exe文件,但我不知道如何关闭弹出消息

有谁知道怎么做?

非常感谢

2 个答案:

答案 0 :(得分:1)

我假设您有一个运行EXE安装程序的ruby脚本(通过system调用或类似程序),安装程序会打开一条弹出消息,该消息无法被禁止并禁止脚本从继续。

如果是这种情况,那么您可以使用ruby Win32 API来调用EnumWindowsCloseWindow等函数。当然,它们必须同时运行到安装程序(但可能必须在单独的进程中,取决于ruby / win32线程实现细节),并且在尝试关闭它之前必须知道如何识别正确的消息框

以下是我可能会破解它的方法。编写一个名为“CloseMsgBox.exe”的独立程序,它接受一个命令行参数,该参数是它将关闭的MessageBox的标题;程序将定期调用带有回调函数的EnumWindows,该回调函数调用GetWindowText直到找到目标标题并通过CloseWindow关闭窗口。外部Ruby脚本首先通过system调用(或popen等)在单独的线程中运行此程序,然后exec安装程序。一旦安装程序打开消息框,CloseMsgBox程序将关闭它,因此安装程序将退出,CloseMsgBox将退出,外部Ruby脚本将退出。

答案 1 :(得分:0)

Windows上的某些安装程序具有静默模式启动标志,因此在安装过程中它们不会显示任何弹出窗口。但是,此选项取决于安装包的类型。