はじめに
デスクトップ上でマウスを自動で操作したいと思ったことはありませんか?インターネットにはフリーソフトがいくつかありますが、広告やウイルスが心配ですよね。
そこで、今回はMATLABを使って自作のマウス操作プログラムを作成しました。Pythonでのマウス操作記事はよく見かけますが、MATLABに関する情報は少ないため、MATLABでのマウスとキーの操作方法とそのコードを共有します。
MATLABによる操作の概要
MATLABから直接デスクトップ上のマウスやキーを操作することはできません。しかし、MATLABからJavaをインポートすることでこれらを制御できます。
MATLABはPythonとは異なり、クリックやキーの押下・解放などを1行で行うことができません。そのため、サブルーチンを作成しておくと便利です。
マウス座標を取得する方法
function [x,y]=MouseCoordinates
mouse = java.awt.MouseInfo.getPointerInfo().getLocation();
x = mouse.x;
y = mouse.y;
end
マウスの移動とクリックする方法
function MouseClick(x,y,t)
% 関係するJavaのクラスをインポートする
import java.awt.event.*;
robot = java.awt.Robot;
robot.mouseMove(x,y);% マウス移動
pause(t);%エラーを回避するための時間調整
% マウスの左ボタンを押す
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
end
下矢印キーを押す方法
function pressDownKey
robot = java.awt.Robot;
% ↓ キーのキーコード
downKeyCode = java.awt.event.KeyEvent.VK_DOWN;
% ↓ キーを押下
robot.keyPress(downKeyCode);
% ↓ キーを解放
robot.keyRelease(downKeyCode);
end
貼り付け操作をする方法
function Paste(PasteName,t)
robot = java.awt.Robot;
% Ctrl+Vのキーコードを設定
ctrlKey = java.awt.event.KeyEvent.VK_CONTROL;
vKey = java.awt.event.KeyEvent.VK_V;
% クリップボードに文字列をコピー
clipboard('copy', PasteName);
% Ctrl+vキーを押下
robot.keyPress(ctrlKey);robot.keyPress(vKey);
% キーを解放
robot.keyRelease(ctrlKey);robot.keyRelease(vKey);
pause(t);%エラーを回避するための時間調整
% エンターキーを押下
robot.keyPress(java.awt.event.KeyEvent.VK_ENTER);
robot.keyRelease(java.awt.event.KeyEvent.VK_ENTER);
end
まとめ
いかがだったでしょうか。
MATLABでマウスやキーの操作をする方法をご紹介しました。
あなたはマウスを自動で動くようにしたことはありますか?コメントで教えてください。