【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のあるウィンドウを表示するサンプルコードをを紹介しました。

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

  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次