Pythonコマンドの作り方 †
コマンド作成の手順 †
- Pythonファイルを作成してcommandフォルダに保存
- command.iniを編集してコマンド呼び出し方法を決める
- ホットキーでSvitchを呼び出して[source]コマンドで設定を再読込
※すべての拡張コマンドはIronPython(ver1.1.2)で記述します。
command.iniの記述 †
[cmd1]
command=ss
path=command/min_win.py
argument=
must_arg=0
command †
コマンドプログラムを起動するためのコマンド名を指定します。
半角の英数文字で1文字以上を指定してください。
path †
実行したいPythonコマンドファイルを指定します。
argument †
コマンドに渡すデフォルト引数を指定します。何も渡す必要がなければ空で構いません。%の後に数字を付けた文字は実行時に入力された引数で置換されます。%1は一つ目の引数、%2は二つ目の引数・・・となり、%0は入力された引数全体になります。
例えばメッセージを表示するhelloコマンドで次のように入力した場合
hello 太郎 次郎 三郎
置換される内容は以下のようになります。
%1 => 太郎
%2 => 次郎
%3 => 三郎
%0 => 太郎 次郎 三郎
※argumentで指定したデフォルト引数はスペースが入っていても一つの引数としてコマンドプログラムに渡されます。詳しくは後述。
must_arg †
コマンドを実行する際に最低限必要な引数の数を指定します。「must_arg=0」と指定した場合のみイミディエイトモードでも使用できるコマンドとなります。
引数について †
「引数(ひきすう)」とはコマンドモードでコマンド名の後にスペースで区切って入力した文字のことを指します。例えばウィンドウを最小化する「ss」コマンドを以下のように入力した場合は「引数無し」でコマンドを実行することになります。(ssコマンドを引数無しで実行した場合はアクティブなウィンドウを最小化します)
ss
一方、次のように入力した場合の引数は「ab」と「cd」となり、実行時に文字列としてコマンドプログラムに渡されます。(ssコマンドで引数を付けた場合は該当するヒント文字を持つウィンドウを最小化します)
ss ab cd
argumentに何らかの文字列を指定した場合は入力済みの引数と共にコマンドに渡されます。「argument=xy」と指定して上記のコマンドを入力した場合に渡される引数は「xy」「ab」「cd」となります。
スペースで区切られた文字のかたまり一つ一つが引数として扱われるので、例えば「program files」といった文字を一つの引数として渡したい場合は次のように二重引用符(ダブルクオテーション)で囲む必要があります。
ss "program files"
コマンドモードとイミディエイトモードの違い †
コマンドモード †
コマンドを実行する際はEnterキーで確定する必要があります。
イミディエイトモード †
「コマンド名」「macro.iniで定義しているマクロ」のどちらかに最短で一致した瞬間に該当する内容を実行します。実行される処理の内容はコマンドモードで引数を付けずに実行したときとまったく同じになります。
Pythonコマンドのひな形 †
Pythonコマンドのひな形は次のような形になります。これに従ってコマンドを作る限りはIronPythonの作法に従って自由に内容を記述することができます。Svitch内部ではコマンドの初回実行時に該当クラスのインスタンスを作成し、Svitch本体のプログラムが終了するまでそのインスタンスを保持します。
コマンドで利用できる情報 †
さらにいろいろなことをしたい人は †
.NET Frameworkを使うことでWindows上で実行可能なほとんどのプログラムを作成することができます。.NET Frameworkでできることやライブラリの使い方は以下のサイトや公式ドキュメントを参考にしてみてください。