AutoHotkey 入門 学習シリーズ (31) 常駐プログラムが走っているか調べる

スタートアップに登録した常駐プログラムが多くなると,うざいですよね.でも,いちいち別のショートカットキーを作ってプログラムを起動させるのも面倒くさい···というあなたに,[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

このようにすると,ショートカットの節約にもなりますし,わざわざスタートアッププログラムを待つ必要もありません.あんまり使わないけど常駐してほしいプログラムがある場合は,いじってみてはいかがでしょうか?

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください