バッチ処理でマウスを操作してTeamsが退席中になるのを防ぐ
目次
はじめに
バッチ処理(PowerShellスクリプト)でマウスイベントを発生させてTeamsが退席中になるのを防ぐ方法。
PCの無操作による端末のロックやスクリーンセーバーの起動を防ぐこともできます。
マウスイベントを発生させるバッチ
以下のコードをバッチファイル形式(MouseEvent.bat
など)の名前で保存します。
@powershell -NoProfile -ExecutionPolicy Unrestricted "&([ScriptBlock]::Create((cat \"%~f0\" | ?{$_.ReadCount -gt 1}) -join \"`n\"))" %* & goto:eof
$Signature = @'
[DllImport("user32.dll")]
public static extern void mouse_event(long dwFlags, long dx, long dy, long cButtons, long dwExtraInfo);
'@
$MouseEvent = Add-Type -MemberDefinition $Signature -Name "Win32MouseEvent" -Namespace Win32Functions -PassThru
echo "Press <Ctrl+C> to exit"
while ($true) {
Start-Sleep -s 50
$MouseEvent::mouse_event(1, 0, 0, 0, 0)
}
バッチを実行するとコマンドプロンプトの画面が開きます。
コマンドプロンプトの画面が出ている間は50秒ごとにマウスイベントが発生します。
秒数を変更したい場合は、コードのStart-Sleep -s 50
の数字を変更してください。
バッチを終了するにはCtrl + C
を押すか、コマンドプロンプトの画面を閉じます。
備考
移動しない(移動量:0
)のマウスイベントを実行しているため、通常の作業で問題が発生したことはないですが、作業によっては悪影響が出るかもしれないので、自己責任で実施してください。
「スクリーンセーバー 防止 バッチ」などのキーワードで検索すると色々情報が見つかるので、詳細を知りたい方はそちらを参考に。