起動して、CapsLockが有効になるとマウスクリック連打が始まって、無効にすると終了するバッチファイル。
ここ一年くらい、ちょっとした便利ツールはなるべくPowerShellで作るようにしている。不確定仕様のまま納品日を迎えても、現場でテキストエディタで書き換えられるのが良い。
不確定の数×バリエーションぶんの設定項目を持つsetting.xmlを作るのは結構な負担だ。ほとんどの項目は、実際には使わないのに。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | @powershell -windowstyle hidden -NoProfile -ExecutionPolicy Unrestricted "&([ScriptBlock]::Create((cat -encoding utf8 \"%~f0\" | ? {$_.ReadCount -gt 2}) -join \"`n\"))" %* @exit /b Add-Type -AssemblyName System.Windows.Forms $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; # capslock がかかっていたら解除 if([System.Console]::CapsLock){     $wsh = New-Object -ComObject WScript.Shell     $wsh.SendKeys('{CAPSLOCK}') } [int]$closeFlag = 0 while(1) {     # 50/1000 秒待機     Start-Sleep -Milliseconds  50     if([System.Console]::CapsLock){         # capslock がかかったら左クリック         $SendMouseClick::mouse_event(0x00000002, 0, 0, 0, 0);         $SendMouseClick::mouse_event(0x00000004, 0, 0, 0, 0);         $closeFlag = 1;     }elseif ($closeFlag -eq 1) {         # Write-Output("end")         # capslock 外したら終了         exit     } } | 
◆ソース
https://github.com/umhr/Clicker
◆参考
PowerShellでキー入力の自動化
https://systemage.co.jp/blog/?p=1662
powerShellで無限ループと待機処理
http://harikofu.blog.fc2.com/blog-entry-77.html
 
			

 
		 
				
			 
				
			 
				
			