PowerShellでマウス操作をやってみた

スポンサーリンク

はじめに

PowerShellでマウス操作ができることはご存じでしょうか。座標を指定してマウスのクリックやダブルクリックなどを自動で操作させることができます。

ちなみにキーボード操作も可能です。
https://it-study.info/powershell-rpa-modoki/

ソース

座標(10,20)を左クリックします。

# 変数定義
$x = 10
$y = 20

# .NET Frameworkの宣言
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 

# Windows APIの宣言
$signature=@'
[DllImport("user32.dll",CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)]
public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);
'@
$SendMouseClick = Add-Type -memberDefinition $signature -name "Win32MouseEventNew" -namespace Win32Functions -passThru

# マウスカーソル移動
[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point($x, $y)

# 左クリック
$SendMouseClick::mouse_event(0x0002, 0, 0, 0, 0);
$SendMouseClick::mouse_event(0x0004, 0, 0, 0, 0);

その他のマウス操作の例を掲載しておきます。

# 左ダブルクリック
$SendMouseClick::mouse_event(0x0002, 0, 0, 0, 0);
$SendMouseClick::mouse_event(0x0004, 0, 0, 0, 0);
$SendMouseClick::mouse_event(0x0002, 0, 0, 0, 0);
$SendMouseClick::mouse_event(0x0004, 0, 0, 0, 0);

# 右クリック
$SendMouseClick::mouse_event(0x0008, 0, 0, 0, 0);
$SendMouseClick::mouse_event(0x0010, 0, 0, 0, 0);

# 右ダブルクリック(これは通常使用することはない)
$SendMouseClick::mouse_event(0x0008, 0, 0, 0, 0);
$SendMouseClick::mouse_event(0x0010, 0, 0, 0, 0);
$SendMouseClick::mouse_event(0x0008, 0, 0, 0, 0);
$SendMouseClick::mouse_event(0x0010, 0, 0, 0, 0);


コメント