在MATLAB中自动按下特定的键盘键

时间:2013-10-01 19:48:55

标签: matlab scripting

有没有办法让MATLAB自动按下特定的键盘键? 我的互联网连接没有任何理由断开连接。我想在MATLAB中创建一个脚本,定期检查互联网连接状态,如果连接断开,程序将自动运行连接。 我想在MATLAB中编写一个自动运行连接的脚本(第一张图片)。然后程序应自动按Enter键(第一张图片中的“连接”按钮)。在此之后,将出现第二个窗口(第二张图片)。在第二个窗口中,如果单击“连接”按钮,则连接将连接到Internet。 这是我的剧本:

function [] = AutoConn()
tic ;

cTime = 2 ;
k = 0 ;
A = 0 ;
while(1)
    nTime = toc ;
    tic ;
    C = isnett ;
    if C == 1
        A = 1 ;
    else
        A = 0 ;
        system('C:\...\Connection.pbk');
      {....}

    end
    clc;
    k = k+1;
    k
    A
    pause(cTime) ;
end


function flag = isnett()
% This function returns a 1 if basic internet connectivity
% is present and returns a zero if no internet connectivity
% is detected.

% define the URL for US Naval Observatory Time page
url =java.net.URL('http://tycho.usno.navy.mil/cgi-bin/timer.pl');

% read the URL
try
    link = openStream(url);
    parse = java.io.InputStreamReader(link);
    snip = java.io.BufferedReader(parse);
catch
    flag = 0;
    return
end
if ~isempty(snip)
    flag = 1;
else
    flag = 0;
end

第一张图片:                http://i.stack.imgur.com/OEy6W.png

第二张图片:                http://i.stack.imgur.com/TPlEN.png

1 个答案:

答案 0 :(得分:2)

是的,尽管没有记录,但Matlab可以通过使用java.awt.Robot see Undocumented Matlab post on this topic来做到这一点。

它提到了一个非常好的FEX,可以帮助你完成工作:inputEmu

使用inputEmu您需要做的就是:

inputemu('key_normal','\ENTER');

注意:您需要测试AWT是否可用:

error(javachk('awt'))

if usejava('awt')
   myFrame = java.awt.Frame;
else
   disp('Unable to open a Java Frame.');
end