サンプルコード

Autoit|ウィンドウの作成|ボタンとInputBox

今回は、ボタンとファイルをドラッグ&ドロップできるInputBoxのあるウィンドウを表示するサンプルコードを紹介します。

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つのファイルをインクルードします。

  1. <Misc.au3> 関数 _Singleton の使用
  2. <GUIConstantsEx.au3> 変数 $GUI_DROPACCEPTED の使用
  3. <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のあるウィンドウを表示するサンプルコードをを紹介しました。

次回は、メニューリストの表示方法を紹介したいと思います。

コメント