[ 新規に投稿する ]

スクリプトからデフォルトのキー動作をさせる方法No.09648
ももきち さん 21/11/13 21:57 [ コメントを投稿する ]
  スクリプトについて、あまりよく分かっておらず恐縮ですが、以下について教えて頂けないでしょうか。

ESCキーを押した時に、以下の動作を実現したいとします。
・サブウィンドウで開かれていたら、サブウィンドウを閉じる。
・サブウィンドウでなければ、本来のESCキーが押された動作をする。

 その場合、ESCキーに以下のスクリプトを割り当てると、それっぽい動作をするようにはなりました。
----
if( GetWindowText(GetCurrentWindowHandle()).slice(-4) === "(サブ)") {
  Command("閉じる");

// 以降は本来のESCキーの動作のつもり(@)
} else if( GetSpaceSelectMode()) {
  SetSpaceSelectMode(0);  // スペース選択モード解除のつもり(A)
  SelectItem(-1);  // 選択しているファイルを解除したつもり(B)
}
----
 ここで、気になったのは、
 @ファイルの切り取り実行後の解除動作など、完全にESCキーの動作を再現できていません。
   本来のESCキーを押下した時の処理を、スクリプトから実行する方法はないでしょうか?
   例えば、EndMacro(数値); など、特定の中断をした場合は、継続して本来のESCキーの処理を呼び出すといった感じをイメージしています。
 ASetSpaceSelectMode()のパラメータは「0」で良いか?(ヘルプに説明が見当たらなかった)
 B選択状態を解除するのは、SelectItem(-1)で良いか?(ヘルプから探せなかった)
[ ]
RE:09648 スクリプトからデフォルトのキー動作をさせる方法No.09650
秀丸担当 さん 21/11/15 10:17 [ コメントを投稿する ]
 
> @ファイルの切り取り実行後の解除動作など、完全にESCキーの動作を再現できてい
>ません。
>   本来のESCキーを押下した時の処理を、スクリプトから実行する方法はないでしょ
>うか?

いまのところ方法は無いはずだと思います。
Escだけでなく、他のキー操作だったり、もしスクリプト内で何らかの処理を行った後に本来のキー操作が行われるとどうなってしまうのか予想がつかないこともあり、これをやるのは難しそうです。すみません。

> ASetSpaceSelectMode()のパラメータは「0」で良いか?(ヘルプに説明が見当たらな
>かった)

スペース選択モードを解除するには、0でいいです。
SetSpaceSelectMode()のパラメータは、GetSpaceSelectMode()で得られるものと同じ意味の値を指定します。
GetSpaceSelectMode()は、スペース選択モードでないとき0で、スペース選択モードのとき1です。
そのあたりのこともヘルプに書いておきます。

> B選択状態を解除するのは、SelectItem(-1)で良いか?(ヘルプから探せなかった)

選択解除するには、Command("選択解除");でできます。
SelectItem(-1)は、やってみたら確かに選択解除になりましたが、調べてみたら意図した動作ではなく、全ての項目にフォーカスを与えようとして、エラーで結果的に解除となるようでした。
SelectItem(-1)で解除もできるというようにしようと思います。
[ ]
RE:09650 スクリプトからデフォルトのキー動作をさせる方法No.09652
ももきち さん 21/11/15 20:05 [ コメントを投稿する ]
  >> @ファイルの切り取り実行後の解除動作など、完全にESCキーの動作を再現できてい
>>ません。
>>   本来のESCキーを押下した時の処理を、スクリプトから実行する方法はないでしょ
>>うか?

承知しました。ご確認ありがとうございます。
とりあえず、自前のスクリプトで、やりたかった事を実現することができました。

>スペース選択モードを解除するには、0でいいです。
>SetSpaceSelectMode()のパラメータは、GetSpaceSelectMode()で得られるものと同じ意味の値を指定します。
>GetSpaceSelectMode()は、スペース選択モードでないとき0で、スペース選択モードのとき1です。
>そのあたりのこともヘルプに書いておきます。

承知しました。ヘルプに記載のほど宜しくお願いします。

>選択解除するには、Command("選択解除");でできます。

ヘルプを探したつもりでしたが、"選択解除"コマンドを見落としていました。お手数おかけしました。
この方法でうまく動作することを確認しました。
また、SelectItem(-1)でも対応頂けるということで宜しくお願い致します。
[ ]
RE:09650 スクリプトからデフォルトのキー動作をさせる方法No.09667
ももきち さん 21/11/21 14:05 [ コメントを投稿する ]
  V1.70β4にて、GetSpaceSelectModeとSelectItemのヘルプが修正されていることを確認しました。
ご対応有難うございました。
[ ]

[ 新規に投稿する ]