userPlusのフォルダ
userPlusのフォルダ
ソースコード版には以下のフォルダがあります。
このフォルダに TRR のソースコードが全て書かれています。
そして今回説明するのは、以下のファルダについてです。
このフォルダ内のファイルは、ユーザーが独自の動作を作れる様にするために用意したファイルです。
この userPlus のフォルダと、その中にあるファイルの事について説明します。
userMakeScript を使う場合との違い
ユーザーが独自の動作を作れる様にするために用意したファイルというと、 userMakeScript のフォルダ内のを使った場合と同じという事になります。
実際、
userMakeScript
内の
userMakeSubroutineAndFunction.ahk
のファイルの代わりとして使う使い方も可能です。
ただし、このファイルとは違う事があります。
それは、
userPlus
内にあるファイルとファイル内に記入してある関数は削除してはいけないというとこです。
userMakeScript
とその中のファイルは、削除しても
TRR
を使う事はできます。
その場合は、
TRR
が起動した際に新しく
userMakeScript
とその中のファイルが作られる様になっています。
そして、 userPlus 内のファイルの中には関数が既に記入されており、その関数は TRR のソースコードの中で既に使われているものであるというところが違います。
userPlus 内のファイルの役割
userPlus のフォルダ内には以下のフォルダがあります。
- default
- userPlusCommand
そして、 userPlusCommand のフォルダ内には以下のファイルがあります。
- type1.ahk
- type2.ahk
- type3.ahk
- type4.ahk
- type5.ahk
- type6.ahk
これらのファイルは、規定のコマンドに独自のコマンドを追加するためのファイルです。
規定のコマンドには、タイプ別に 7種類に分かれています。
type1.ahk のファイルは、規定のコマンドのタイプ1の種類のコマンドを追加するためのファイルです。
規定のコマンドのタイプ別の説明は 辞書 のページでします。
ちなみに、タイプ7の種類に追加するためのファイルはありません。
ファイル内の関数
それぞれのファイルには関数が存在しています。
ファイルごとに関数名が違ったりしています。
しかし、どのファイルも関数は
1つのみであり、使い方のルールもほとんど共通しているものです。
type1.ahk のファイルの中は以下の様になっています。
uptype1_plusPopupCommand(command, useControl, useGuiNum){
/*
if(command == "newCommand1" ) {
userMakeFunc1(command, useControl, useGuiNum)
return True
} else if(command == "newCommand2" ) {
userMakeFunc2(command, useControl, useGuiNum)
return True
}
*/
return False
}
/' と '/ で囲まれているコメントアウトされている部分が使用例です。
これを使って規定のコマンドと同じ様なものを作れます。
以下にルールを列挙します。
-
関数の返り値が True なら、規定のコマンドが実行された時と同じ様に、処理が別の可能性を検索せずにそこで終わります。
( 一つの処理が終わる。 )関数の返り値が False なら、別の処理の可能性を探します。
( 処理が終わらない。 ) -
command の引数には、実行コマンド部分が格納されます。
引数の部分はここには含まれません。if文 にある newCommand1 などの文字列を、作りたい規定のコマンドの名前に置き換えて指定します。
-
useControl の引数には、実行元の テキスト のコントロール変数が格納されます。
useGuiNum の引数には、実行元の テキスト のGuiの番号が格納されます。
これらを利用して、
F_setControl( useGuiNum, useControl, V_var1 )といった指定で、実行元の テキスト に文字を出力できます。
userMakeFunc1( )
の部分は、ユーザーが自作した関数と置き換えて使います。
そうして、独自の動作をするものを作ってください。
今回の例は、
type1.ahk
のファイルに関してであり、
他のファイルにある関数は、引数が今回のと違うものがあったりします。
ですが、大筋のルールは同じです。
別のファイルにある関数の
allArgs
の引数には、実行コマンド以外の部分が格納されます。
つまり、実行コマンドの後に続く文字列の事です。
引数名はこれ以外にも存在しますが、それについては別のページで説明します。
現在はまだ説明を書いていません。気が向いたらいつか書こうと思います。
default のフォルダ
userPlus 内には、 default のフォルダがあります。
このフォルダ内には、
userPlusCommand
のフォルダ、つまり
userPlus
内のと同じフォルダとファイルがあります。
( default を除く。 )
この default は、 userPlus 内のフォルダとファイルを元に戻すために用意しているものです。
default 内のファイルは、初期の状態の type1.ahk などのファイルが入っています。
userPlus
内のファイルを扱う際は、このフォルダをコピーしてバックアップをとる事を薦めますが、
バックアップをしなかったとしても、
default
内のファイルを使って初期の状態に戻す事はできます。
ただし、
default
内のファイルを編集してしまうとそれが出来なくなります。
これらのファイルは読み取り専用とかではなくて、普通のファイルです。
TRR のスクリプトだけでも、ある程度は作れるので
userPlus のフォルダ内のファイルを編集する事で、規定のコマンドと同じものを作る事ができる事を紹介しました。
ただ、これを使わず TRR のスクリプトを使ったものでも、規定のコマンドとほぼ同じ様なものを作る事は可能だと思います。
以下のページに規定のコマンドとほぼ同じ様なものを作る場合の例を載せていいます。
マウス操作のためのウインドウに追加する
追加するランチャー。使用例。その3
このページでは、
F_getTextEditExecutor()
と
&outArgsToTextEditExecutorTextOut
と
&sendEndToTextEditExecutor
の
3つのものを使って、規定のコマンドと同じ様なものを作る例を挙げています。
これらを使う事で、タイプ2の規定のコマンドの様な、 分割テキスト のフォーカスのある入力欄でのみ動作する様なものを作る事が可能です。
これらを使えば AHK のソースコードを扱う様な事をせずに TRR のスクリプトだけで規定のコマンドと同じ様な事ができると思います。
今回は、 userPlus 内のファイルを編集する事で「規定のコマンドと同じように使えるものを追加する方法」を紹介しました。
しかし、 TRR のバージョンアップをする場合などは、 userPlus 内のものは、 TRR のソースコードの一部のため、バージョンアップで元に戻ってしまうため、ユーザーが作った userPlus のバックアップを取っておいたりしなければならない事になります。
ですので、上記の
F_getTextEditExecutor()
と
&outArgsToTextEditExecutorTextOut
と
&sendEndToTextEditExecutor
とを使って
TRR
のスクリプトだけで実現する方法を取れるなら、そちらを使う方を薦めます。
そして、その方法などで実現できない様な場合にだけ userPlus 内のファイルを編集して作るという方法をとる事を薦めます。
- ソースコード版について
- AHKとTRRのスクリプトの比較
- userPlusのフォルダ
- AHKのソフトにTRRを混ぜ込む