30代のほったらかし資産形成ー穏やかな未来への計画ー

運用スタイルは中・長期です。東京近郊でお得に楽しむ株主優待体験やイベント、決算内容を紹介します。

【データ分析】MATLABでマウスとキーの自動化方法

はじめに

デスクトップ上でマウスを自動で操作したいと思ったことはありませんか?インターネットにはフリーソフトがいくつかありますが、広告やウイルスが心配ですよね。

そこで、今回はMATLABを使って自作のマウス操作プログラムを作成しました。Pythonでのマウス操作記事はよく見かけますが、MATLABに関する情報は少ないため、MATLABでのマウスとキーの操作方法とそのコードを共有します。

MATLABによる操作の概要

MATLABから直接デスクトップ上のマウスやキーを操作することはできません。しかし、MATLABからJavaをインポートすることでこれらを制御できます。

MATLABPythonとは異なり、クリックやキーの押下・解放などを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でマウスやキーの操作をする方法をご紹介しました。

 

あなたはマウスを自動で動くようにしたことはありますか?コメントで教えてください。