今回は、ボタンとファイルをドラッグ&ドロップできるInputBoxのあるウィンドウを表示するサンプルコードを紹介します。
InputBoxにファイルをドラッグ&ドロップできると、ファイルの選択やユーザーの入力作業を省くことができます。
ウインドウのサンプルコード
#include <Misc.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
If _Singleton("WRCMenu", 1) = 0 Then
MsgBox(0, "WRCMenu", "既に起動しています")
Exit
EndIf;==>ここまで
Opt("TrayIconHide", 1)
$Gui = GUICreate("WRCMenu", 430, 100, -1, -1, -1, $WS_EX_ACCEPTFILES)
$Input_1 = GUICtrlCreateInput("", 10, 5, 340, 20)
GUICtrlSetState($Input_1, $GUI_DROPACCEPTED)
$Input_2 = GUICtrlCreateInput("", 10, 35, 340, 20)
$btn = GUICtrlCreateButton("開く", 360, 5, 60, 20)
$btn2 = GUICtrlCreateButton("追加", 360, 35, 60, 20)
$btn3 = GUICtrlCreateButton("メニューリスト", 10, 65, 410, 20)
GUISetState()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEnd
コードの解説
1.インクルードファイル
次の3つのファイルをインクルードします。
- <Misc.au3> 関数 _Singleton の使用
- <GUIConstantsEx.au3> 変数 $GUI_DROPACCEPTED の使用
- <WindowsConstants.au3> 変数 $WS_EX_ACCEPTFILES の使用
2._Singleton関数
_Singleton関数で「WRCMenu」という名前のウィンドウが起動されているかを判断します。
If _Singleton("WRCMenu", 1) = 0 Then; もし戻り値が「0」ならば、既に同じ名前のウィンドウが起動されています。
MsgBox(0, "WRCMenu", "既に起動しています"); メッセージボックスを表示します。
Exit; スクリプトを終了します。
EndIf
3.Opt(AutoItSetOption)
Opt("TrayIconHide", 1); タスクトレイのアイコンを非表示にします。
4.ウィンドウの作成
$Gui = GUICreate("WRCMenu", 430, 100, -1, -1, -1, $WS_EX_ACCEPTFILES)
;ウィンドウを作成します。$WS_EX_ACCEPTFILESでウィンドウにドラッグ&ドロップを許可します。
$Input_1 = GUICtrlCreateInput("", 10, 5, 340, 20); 1つ目のInputBoxを作成します。
GUICtrlSetState($Input_1, $GUI_DROPACCEPTED); 上のInputBoxにドラッグ&ドロップを許可します。
$Input_2 = GUICtrlCreateInput("", 10, 35, 340, 20); 2つ目のInputBoxを作成します。
$btn = GUICtrlCreateButton("開く", 360, 5, 60, 20); 1つ目のボタンを作成します。
$btn2 = GUICtrlCreateButton("追加", 360, 35, 60, 20); 2つ目のボタンを作成します。
$btn3 = GUICtrlCreateButton("メニューリスト", 10, 65, 410, 20); 3つ目のボタンを作成します。
GUISetState(); ウィンドウを表示します。
5.無限ループ
無限ループを作成しないと、スクリプトを実行してもすぐに終了されてしまいます。
常にウィンドウを表示させるために、「While…WEnd」で無限ループを作成します。
While 1; 無限ループ
$msg = GUIGetMsg(); ウィンドウからのメッセージを受信します。
Select; 条件付き命令文を開始します。
Case $msg = $GUI_EVENT_CLOSE; ウィンドウの閉じるボタンまたは?が押されたら
Exit; スクリプトを終了します。
EndSelect; 条件付き命令文を終了します。
WEnd; 無限ループはここまで
実際にサンプルコードを実行し、好きなファイルまたはフォルダーをドラッグ&ドロップしてみましょう。
今回は、自作ソフト「WRCMenu」を例に、ボタンとファイルをドラッグ&ドロップできるInputBoxのあるウィンドウを表示するサンプルコードをを紹介しました。
次回は、メニューリストの表示方法を紹介したいと思います。
コメント