gpt4 book ai didi

matlab - 在 Matlab 中启动 .exe 文件后以编程方式按回车键

转载 作者:太空宇宙 更新时间:2023-11-03 19:06:45 31 4
gpt4 key购买 nike

在 Matlab 中,我可以启动外部 .exe 文件,这些文件有时会弹出,需要按下回车键。例如:

system('C:\Program Files (x86)\WinZip\WINZIP32.EXE')

将启动 Winzip,然后为了使用它,您需要按回车键通过“立即购买”弹出窗口。现在我的问题不在于 winzip,我只是举个例子(反正我用的是 winrar :)。

在这种情况下,如何以编程方式在 Matlab 中按下回车键? (我用的是win 7)

可以使用事件监听器来解决这个问题吗?

编辑:java.awt.Robot 类确实适用于资源管理器,但不适用于任何具有需要按下 OK 按钮的弹出窗口的软件。我不知道为什么它不起作用。我给出了 winzip 示例,因为我假设每个人都在他们的机器上安装了 winzip/winrar。我拥有的实际软件与问题不同且无关。

最佳答案

有一种使用 Matlab 中的 Java 的方法,特别是 java.awt.Robot 类。参见 here .

显然有两种类型的程序,关于它们在使用 system('...') 从 Matlab 调用时的工作方式:

  1. 对于某些程序,Matlab 等待 直到程序完成后再运行下一条语句。例如,WinRAR(至少在我的 Windows 7 机器上)会发生这种情况。

  2. 对于其他程序,这不会发生,并且 Matlab 继续在外部程序启动后立即执行下一条语句。这种类型的一个例子是 explorer(标准的 Windows 文件资源管理器)。

现在,即使对于类型 1 的程序,也可以立即将执行返回给 Matlab:只需在传递给 system 的字符串末尾添加 &。这是 standard in Linux Bash shell ,它也适用于 Windows,如所讨论的那样 here .

因此,您将按以下方式进行:

robot = java.awt.Robot;
command = '"C:\Program Files (x86)\WinRAR\WinRAR"'; %// external program; full path
system([command ' &']); %// note: ' &' at the end
pause(5) %// allow some time for the external program to start
robot.keyPress (java.awt.event.KeyEvent.VK_ENTER); %// press "enter" key
robot.keyRelease (java.awt.event.KeyEvent.VK_ENTER); %// release "enter" key

关于matlab - 在 Matlab 中启动 .exe 文件后以编程方式按回车键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27933270/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com