マウス操作のためのウインドウに追加する

追加するランチャー。その4

ボタンを追加するアイテム。引数なし

前回ボタンを追加する addButtonGui52_type2アイテムを作りました。
これを使って、ボタンを作る事は可能です。

ただ、これを使う場合は引数の指定と、
その次にこの変数の代入をしなければなりません。
%exp52_tmpControlVar%_script := "[実行する処理]"

次に挙げるのは、引数を指定せず、別途で変数の代入をせずにボタンを追加するアイテムです。

byText1InputAddButtonGui52.trr
; テキスト1から実行処理を登録する
InputBox, exp52_tmpViewText, ボタンの文字入力, 表示する時の文字を入れて, , 250, 130, 200, 300, メイリオ
if( ErrorLevel_TextRunRun == 1 ){
    F_tmpOutput( "中断する。" )
    return
}
if( exp52_tmpViewText == "" ){
    F_tmpOutput( "入力文字がないので中断する。" )
    return
}
exp52_tmpArg1 := F_getTextGuiAssign(B_GuiNumText1)
if( exp52_tmpArg1 == "" ){
    F_tmpOutput( "テキスト1に実行処理を記入していないので中断する。" )
    return
}
addButtonGui52_type2 %exp52_tmpViewText%

if( exp52_count >= exp52_many ){
    return
}
; テキスト1から処理を代入する
%exp52_tmpControlVar%_script := exp52_tmpArg1
%--

このアイテムの使い方です。

このアイテムテキスト1 に記入している内容を取得してそれを実行スクリプトして登録します。

このアイテムを使う時は引数を指定しませんが、
テキスト1 に記入しておく必要があります。

このアイテムを使うと、小さい入力欄が表示します。
その入力欄に「ボタンに表示する文字」を記入します。

画像

この様なものが表示するのでこれに入力します。

使い方は以上なので、スクリプトの内容を説明します。

まず、 InputBoxAHKコマンド を使います。 これが上の「小さい入力欄」を使っている個所です。

TRR は、 ErrorLevel が意味を成さないため、 ErrorLevel_TextRunRun を使います。

エラーがあったら中断させるようにします。

入力欄の文字がカラでも中断します。

次の部分ですが、
F_getTextGuiAssign( ) の関数を使っています。
これは、 テキストに記入している文字を取得する関数です。

引数にテキストのGuiの番号を指定して使用します。
今回は、 テキスト1 の文字を使うルールにするため、
B_GuiNumText1 の変数を指定します。

そして、 テキスト1 に文字が記入されていなかった場合は中断するようにしています。

次は、ボタンを登録する処理です。
前回に挙げた、 addButtonGui52_type2 を使ってボタンを登録します。
引数に InputBox で記入した文字が使われています。

実行する処理の方に、 テキスト1 から取得した文字を代入して終わりです。

早速、登録してみる

byText1InputAddButtonGui52 を早速使ってボタンを登録します。
というよりもいっその事、
この byText1InputAddButtonGui52 自体を実行するボタンを登録する事にします。

byText1InputAddButtonGui52 は、引数を指定しないで使用できるため テキストから実行せずとも、ボタンとして登録しても使用できます。

今回は、 テキスト1 を実行スクリプトを指定する部分に使うため、 テキスト2 の方も使います。

2つ共に byText1InputAddButtonGui52 を記入して、
テキスト2 で実行してください。

byText1InputAddButtonGui52
byText1InputAddButtonGui52

実行すると、 InputBox の入力欄が表示するので、
それには テキスト1から登録 とでも入力します。

画像

このようにボタンが追加されると思います。

そしてこれからは、 byText1InputAddButtonGui52 を入力しなくともこのボタンを押す方法で新しいボタンを追加できるようになります。

ただし、このボタンを押す際は、その前に テキスト1 に実行させたいスクリプトをあらかじめ記入しておく必要があります。

ボタンを登録するボタンを付けたので、この後は新しいボタンの追加が楽になるのではないかと思います。

画像を追加するアイテム。引数なし

今度は画像を追加する アイテムの方も用意します。

先程のと同じように、引数の指定をせずに画像を追加できるアイテムです。

byText1_2InputAddPictureGui52.trr
; テキスト1から実行処理を登録する
; テキスト2から画像パスを取得する
InputBox, exp52_tmpViewText, ボタンの文字入力, 画像が無い時の代えの文字を入れて, , 250, 150, 200, 300, メイリオ
if( ErrorLevel_TextRunRun == 1 ){
    F_tmpOutput( "中断する。" )
    return
}
if( exp52_tmpViewText == "" ){
    F_tmpOutput( "入力文字がないので中断する。" )
    return
}
exp52_tmpArg1 := F_getTextGuiAssign(B_GuiNumText1)
if( exp52_tmpArg1 == "" ){
    F_tmpOutput( "テキスト1に実行処理を記入していないので中断する。" )
    return
}

; テキスト2から画像パスを取得。変数は何に代入してもいいが、exp52_tmpNoExtFile をどうせ使うのでこの変数でよい
exp52_tmpNoExtFile := F_getTextGuiAssign(B_GuiNumText2)
addPictureGui52_type2 %exp52_tmpViewText%  %exp52_tmpNoExtFile%

if( exp52_count >= exp52_many ){
    return
}
; テキスト1から処理を代入する
%exp52_tmpControlVar%_script := exp52_tmpArg1
%--

このアイテムの使い方ですが、
これも、 テキスト1 に実行する処理を記入して使います。

さらに、 テキスト2 に画像のファイルパスを指定するルールにしています。

スクリプトですが、 先ほどのボタンを追加するアイテムとの主な違いは、
F_getTextGuiAssign(B_GuiNumText2) を使って
テキスト2 から文字を取得している事と、
addPictureGui52_type2 の方を使っているぐらいの違いで、ほとんど同じです。

addPictureGui52_type2 の引数2 に画像のファイルパスを指定しています。
addPictureGui52_type2 の仕様で、画像のファイルパスがあれば画像のコントロールを追加し、
画像が見つからない場合は、
引数1 で指定した文字が表示されたボタンで追加するようになります。

つまり、InputBoxで指定した文字でボタンが追加されます。

ボタンとして登録する

byText1_2InputAddPictureGui52 の方も区画の中に追加しておきます。

画像のコントロールを追加するアイテムをせっかく作ったところですが、
画像を用意するのが面倒なので、ボタンの方で追加しようと思います。

このbyText1_2InputAddPictureGui52 を動作させるボタンを追加します。

まず、 テキスト1 に実行スクリプトを記入しておきます。

byText1_2InputAddPictureGui52

次に、「追加するランチャー」に先ほど登録しておいた

テキスト1で登録

のボタンを押します。

InputBox の入力欄には、
画像で登録 とでも入力します。

画像

これで、このボタンから
byText1_2InputAddPictureGui52 が実行できます。

このボタンを使う場合は、
テキスト1 に実行スクリプトを、
テキスト2 に画像のファイルパスを指定しておく必要があります。

せっかくなので動作確認

見本として使った例を挙げます。

ソフトの実行ファイルは、そのファイル自体が画像として使えるので何かのソフトを指定してみます。

テキスト1テキスト2 に何かのソフトの実行ファイルを指定します。

C:\Program Files\Mozilla Firefox\firefox.exe
C:\Program Files\Mozilla Firefox\firefox.exe

次に、

画像で登録

のボタンを押します。

InputBoxの入力欄には適当な文字をいれます。

画像

画像のコントロールの区画が追加される思います。

次のページに移行します。