スタートアップに登録した常駐プログラムが多くなると,うざいですよね.でも,いちいち別のショートカットキーを作ってプログラムを起動させるのも面倒くさい···というあなたに,[Process, Exist, Programname]を送ります.
今日のCan-do
Processコマンドを使って,常駐プログラムが行われているか調べたうえで,必要に応じてプログラムが走るように設定できる
さて,プログラムが走っているかどうかは,通常IfWinExistを使うのが普通です.ですが,常駐プログラムの場合は,Windowが表示されない場合がほとんどです.
その代わりに,Processコマンドを利用します.
Processコマンドには,いろいろなサブコマンドが設定されていますが,使うのはExistです.今回は,ShareXというキャプチャーソフトを例にとります.
Process, Exist, ShareX.exe
*.exeはタスクマネージャーのプロセスから調べることができます.
Process, Existでは,以上の場合,もしShareXが走っていれば,ErrorLevelというビルドインバリアブルが1に,走っていなければ0になります.なので,原理的には
PrintScreen::
Process, Exist, ShareX.exe ; 走っているか調べる
If (ErrorLevel = 0) ;もし走っていなければ
{
Run, ShareX.exe ;走らせる
}
else, ;すでに走っていれば
{
;何もしない
}
Send, ^{PrintScreen} ; 四角で画面を切り取る
こういう感じになります.ただし,起動まで待ったり,要らないウインドウを閉じないといけないので,実際には以下のようになりました.
PrintScreen::
Process, Exist, ShareX.exe
if (ErrorLevel = 0)
{
Run, C:\Program Files\ShareX\ShareX.exe
WinWait, ShareX,,1
sleep, 500
WinMinimize, ShareX
Sleep, 200
}
else
{
}
Send, ^{PrintScreen}
return
このようにすると,ショートカットの節約にもなりますし,わざわざスタートアッププログラムを待つ必要もありません.あんまり使わないけど常駐してほしいプログラムがある場合は,いじってみてはいかがでしょうか?