サンプルコード

Autoit|ウィンドウをタスクトレイに最小化する

ウィンドウは、通常最小化をするとタスクバーに最小化されます。

Autoit では、ウィンドウをタスクトレイに最小化することが出来ます。

今回は、ウィンドウを最小化した際にタスクバーには表示せずに、タスクトレイにアイコンを表示するというコードを紹介します。

このコードは、常駐アプリを作成する際に便利なので覚えておきましょう。

サンプルコード

#include <Constants.au3>
#include <GUIConstantsEx.au3>

Opt("TrayIconHide", 1)
Opt("TrayMenuMode", 1)
Opt("TrayOnEventMode", 1)

$Form1 = GUICreate("Form1", 300, 200, -1, -1)
GUISetState(@SW_SHOW)

TraySetOnEvent($TRAY_EVENT_PRIMARYUP, "hide_in_task_tray")


While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $GUI_EVENT_MINIMIZE
			GUISetState(@SW_HIDE, $Form1)
			Opt("TrayIconHide", 0)
	EndSwitch
WEnd

Func hide_in_task_tray()
	Opt("TrayIconHide", 1)
	GUISetState(@SW_SHOW, $Form1)
	WinActivate($Form1)
EndFunc   ;==>tray

実際にプログラムを実行した動画をご覧ください。

コードの解説

Opt(“TrayIconHide”, 1); トレイアイコンを隠します。
Opt(“TrayMenuMode”, 1); トレイメニューのデフォルトメニューを表示しません。
Opt(“TrayOnEventMode”, 1); TrayOnEventモードを ON にします。

$Form1 = GUICreate(“Form1”, 300, 200, -1, -1)
GUISetState(@SW_SHOW)

TraySetOnEvent($TRAY_EVENT_PRIMARYUP, “hide_in_task_tray”)
; トレイアイコンでマウスの左クリック(第一ボタン)を離すイベントが発生した際に呼ばれるユーザー定義関数を定義します。

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $GUI_EVENT_MINIMIZE; ウィンドウを最小化したら
GUISetState(@SW_HIDE, $Form1); 指定したウィンドウを隠します。
Opt(“TrayIconHide”, 0); トレイアイコンを表示します。
EndSwitch
WEnd

Func hide_in_task_tray();トレイアイコンクリックして離したら
Opt(“TrayIconHide”, 1); トレイアイコンを隠します。
GUISetState(@SW_SHOW, $Form1); 指定したウィンドウを表示します。
WinActivate($Form1); 指定したウィンドウをアクティブにします。
EndFunc ;==>tray

コメント