自动化MATLAB程序的按键输入

时间:2015-01-21 23:51:15

标签: windows matlab batch-file

我有一个现有的MATLAB程序,在击键后在屏幕的左侧或右侧显示图像。然后,用户通过箭头键指示图像是左侧还是右侧。该计划实际上做了很多其他事情,但这是要点。这适用于使用MATLAB 2008A的WinXP计算机。

我想为此程序进行大量(数千次)迭代,以确定运行此程序的某些计算机为何会出现死机图形卡。我已经做了一些改进来简化现有代码并减少计算时间,但我需要测试并显示改进。 GPU-Z记录了我现在感兴趣的所有硬件变量,所以我需要一个能够自动向MATLAB程序提供输入的按键脚本。理想情况下,这将是一个独立的宏,能够完全独立运行。

阅读this question后,我尝试按如下方式修改批处理脚本:

@if (@CodeSection == @Batch) @then


@echo off

rem Use %SendKeys% to send keys to the keyboard buffer
set SendKeys=CScript //nologo //E:JScript "%~F0"

rem Start the other program in the same Window
start "" /B cmd

%SendKeys% "echo off{ENTER}"

set /P "=Wait and send a command: " < NUL
ping -n 100 -w 1 127.0.0.1 > NUL
%SendKeys% "2"

set /P "=Wait and send a command: " < NUL
%SendKeys% "3"

ping -n 30 -w 1 127.0.0.1 > NUL
%SendKeys% "2"

set /P "=Wait and send a command: " < NUL
%SendKeys% "1"

goto :EOF

@end


// JScript section

var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys(WScript.Arguments(0));

在测试中,批处理代码似乎适当地将键击输入到活动窗口(cmd,文本文件,浏览器等)中。但是,如果我尝试同时运行我的MATLAB程序,批处理执行将停止,直到MATLAB程序结束。显然,对于我来说,这在目前的形式中是没用的。

我很感激有关从哪里开始的任何建议。批处理脚本甚至是这种自动化的可行解决方案吗?如果没有,有什么建议吗?我宁愿尽可能远离第三方程序,但如果这是最简单的解决方案,我会考虑它。

0 个答案:

没有答案