デフォルトでは、カスタム コマンドは次のような機能を備えています。
これらの機能は、Init コールバックで無効にすることができます。
function MyCommand_Init( ctxt )
{
var oCmd;
oCmd = ctxt.Source;
// ...
// Disable keyboard mapping for this command
oCmd.SetFlag(siSupportsKeyAssignment,false); // true by default
// Command cannot be used with xsibatch or xsi -script
oCmd.SetFlag(siCannotBeUsedInBatch,true); // false by default
// Disable logging
oCmd.SetFlag(siNoLogging,true); // false by default
// ...
return true;
}SetFlag または SetFlag メソッドは、コマンドの動作をコントロールする「機能フラグ」の設定に使用されます。
[キーボード マッピング]ダイアログ ボックスでキーボード ショートカットをコマンドに割り当てることができるかどうかを指定します。 コマンドが低レベルのヘルパー関数であるため、汎用目的で公開しない場合は、false に設定します。
xsibatch または xsi -script を使用してコマンド ラインから実行されたスクリプトでコマンドが使用できるかどうかを指定します。 たとえば、ユーザ入力が必要なコマンドは、バッチ モードで使用できません。
コマンドをコマンド履歴にログ記録されるかどうかを指定します。 ログ記録を無効にすると、パフォーマンスを向上させることができます。 たとえば、カスタム コマンドが他のスクリプトから頻繁に呼び出される場合や、コマンドでオブジェクトの大きなコレクションを引数として使用する場合などは、ログ記録を無効にすると、コマンドが高速化されます。