|
> V2.29 → メニューが表示はされないが、操作そのものは最後まで再生さ
>れる。
> V3.0x → メニューが表示されるが、そこで入力待ちとなり、改めてrを入
>力しないといけない。
>となり、上記のキー操作は「記録」されないことになります。
>このようなキー操作の記録はV3.0xでは対応しなくなった、という認識でよろ
>しいのでしょうか?
>(だとすると、私はこういう「記録」を多用してますので、v3.0xは使うことは
>もうないでしょう。)
対応しなくなったというより、V2.29ではバグがあったので修正しました。
V2.29までは、記録中にマクロが実行されると不具合があります。
試しに作ったマクロでは、V2.29では記録されなかったり、「他の秀丸がマクロ
実行中」となったり、場合によっては死んだりもしました。
V3.0xでは、不具合が出ないように、マクロ実行そのものを一つの記録とするよ
うにし、安全なようにしています。
そのため、メニューが表示されるところでは止まってしまいます。
V3.0xでやるには、以下のような感じにしてみるとどうでしょうか。
レジストリに一度選んだメニューを記録し、2回目からの実行は、
最初に選んだメニューを再度実行します。
記録したメニューの選択を消すには、下のtest2.macを実行します。
または、keypressedを利用して、キーボードが押された状態を判断して、再生中
かどうかを判断すれば、再生中と通常の実行を判断して、1つのマクロにできる
かもしれません。(ためしていないですが)
//test.mac メインのマクロ
#a = 0;
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\test";
if( result == true ) {
#a = getregnum( "test" );
closereg;
}
if( #a == 0 ) {
menu "&a", "&b";
#a = result;
createreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\test";
if( result == true ) {
writeregnum "test", #a;
closereg;
}
}
if( #a == 1 ) {
insert "1";
} else {
insert "2";
}
endmacro;
//test2.mac 記憶を消去するマクロ
openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\test";
if( result == true ) {
writeregnum "test", 0;
closereg;
}
endmacro;
|
|