0

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

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

4

1 回答 1

2

是的,虽然没有记录,但 Matlab 可以通过使用 java.awt.Robot 来做到这一点,请参阅有关此主题的未记录的 Matlab 帖子

它提到了一个非常好的 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
于 2013-10-01T22:05:17.373 回答