- 作成者投稿
- 2009年10月18日 1:12 pm #8217yosshinメンバー
テキスト編集時のカーソル移動まわりを自分好みにするため、マクロを使ってカスタマイズしていたところ、どうしても良いカタチでクリアできない問題がありましたので、以下の 2 つの要望(提案)を出させてください。
要望 1 : WIN32 API で言うところの GetAsyncKeyState 相当の関数が欲しいです。
現状ですと、GetAsyncKeyState は、SfcMini (http://kandk.cafe.coocan.jp/sfcmini/catid-19.html)などをインストールした状態で、以下のような方法で代替する必要があります。
Win32API = new ActiveXObject( “SfcMini.DynaCall” );
Win32API.LoadLibraries( “kernel32” , “user32” );
var IsShift = Win32API.GetAsyncKeyState( 0x10 ) & 0xFFFFFFE ;
var IsCtrl = Win32API.GetAsyncKeyState( 0x11 ) & 0xFFFFFFE ;
var IsAlt = Win32API.GetAsyncKeyState( 0x12 ) & 0xFFFFFFE ;
:しかしこの手法は、カーソル移動まわりのカスタマイズで利用するにはオーバーヘッドが大きく、キビキビとした操作系が実現できませんでした。とくに重いのは最初の 2 行でした。
GetAsyncKeyState 相当の関数が EmEditor の組み込み関数として実装されていれば、この問題は解消すると思いますので、是非とも用意して欲しいです。要望 2 : マクロ起動にかかる時間を最小化する何らかの手段が欲しいです。
その具体的な目的は、要望 1 と同じく、カーソル移動まわりのカスタマイズをマクロで行う場合の、応答時間の最小化です。従って、ここで言うマクロ起動時間短縮は、数ミリセカンドのオーダーで妥協しない短縮を意味しています。
例えば、ユーザー側で明示的に指定したマクロは、EmEditor のプロセス内でオンメモリにキャッシュしてしまい、マクロを読むためのファイルシステムへのアクセス~応答待ちの時間を短縮するというようなアプローチが考えられます(すでにそうなっていたらすみません)。
以上です。
細かい要望で申し訳ありませんが、エディタに自分好みかつキビキビした操作系を追及したいユーザーの意見として、とらえていただければと思います。# 過去にも KeyState 取得の要望は出ていましたが、切り口が違うので別途スレッドを立てさせていただきました。
- 作成者投稿
- このトピックに返信するにはログインしてください。