コマンド置き換えについてNo.48053
K'zawa さん 15/06/03 20:17
 
こんにちは、K'zawaです。

ヘルプの「マクロ登録・コマンド置き換えダイアログボックス」で、

 コマンドの置き換えを指定していても、マクロの中からコマンドが呼び出して
実行される場合には置き換えが効かず、本来のコマンドの処理が実行されます。
例えばマクロの中からsendmessageを使ってWM_COMMANDを送った場合は本来のコ
マンドの処理が実行されます。

と書かれていますが、これは、置き換えによって実行されたマクロの中から、置
き換えられたコマンドを呼んだ場合に限って…と言ういみでしょうか?
例えば、そのマクロを「マクロ実行」から実行した場合は、置き換えが発生し、
置き換えマクロが実行されようとしてエラー(↓)になるのでしょうか?

「マクロ・マクロ登録・コマンド置き換え」で指定されたマクロを実行しようと
したら、他のウィンドウがマクロ実行中でした。処理を中断します。


置き換え設定
40318,Test.mac

// Test.mac
        #n = sendmessage( hidemaruhandle( 0 ), 0x0111, 40318, 0 );

[ ]
RE:48053 コマンド置き換えについてNo.48054
秀まるお2 さん 15/06/04 09:12
 
> と書かれていますが、これは、置き換えによって実行されたマクロの中から、置
> き換えられたコマンドを呼んだ場合に限って…と言ういみでしょうか?

 「コマンドの置き換え」によって実行されるマクロの中からは、同じコマンド
に限らず、「コマンドの置き換え」が多重実行されることは一切無いです。なの
で、sendmessageするコマンドコードが同じコマンドかどうかは関係無いです。

> 例えば、そのマクロを「マクロ実行」から実行した場合は、置き換えが発生し、
> 置き換えマクロが実行されようとしてエラー(↓)になるのでしょうか?

 エラーにはならず、sendmessageで実行しようとしてる本来のコマンドが実行
されるだけです。

> 「マクロ・マクロ登録・コマンド置き換え」で指定されたマクロを実行しようと
> したら、他のウィンドウがマクロ実行中でした。処理を中断します。

 これは、マクロの中身のsendmessageが実行されて出てるエラーじゃなくて、
そもそものtest.macを実行しようとしてエラーが出てるだけだと思います。エ
ラーメッセージにある通り、「他のウィンドウ」が何かマクロ実行中だったって
ことじゃないかと思います。

 例えばtest.macを、

        message "sendmessage実行します。";
        #n = sendmessage( hidemaruhandle( 0 ), 0x0111, 40318, 0 );
        message "sendmessage終了";

 とかしてみれば、たしかに"sendmessageが実行されてエラーが出てるのか、そ
れともtest.macの実行自体でエラーが出てるのか見分けることが出来ると思いま
す。


[ ]
RE:48054 コマンド置き換えについてNo.48055
K'zawa さん 15/06/04 10:02
 
秀まるおさん、こんにちは。
K'zawaです。

message文を入れて「マクロ実行」から実行してみました。

1. 最初のメッセージ
2. エラーメッセージ
3. 2番目のメッセージ

の順にメッセージが出ました。

[ ]
RE:48055 コマンド置き換えについてNo.48056
秀まるお2 さん 15/06/04 10:34
 
 ということは、すみませんがsendmessageの先でエラーが出てるということで
…。予想と外れてすみません。

 40318は「前のタブ」コマンドなんですが、このコマンドコードはどうやって
見つけられたのですかね。それは別にして…

 test.macの内容を、

    message "test.mac";
    #n = sendmessage( hidemaruhandle(0), 0x111, 40318,0);
    message "test.mac終了";

 とした上で、「40318,test.mac」と指定して、さらに、Ctrl+F1キーに「前の
タブ」コマンドを割り当てて実行してみたら、一応こちらではマクロ多重実行の
エラーは出ずに正常動作しました。

 うまくいかないとしたら、何か別の仕組みが働いて別のマクロが実行されよう
としてるのかなぁという気がします。

 今ちょっと試しに、「マクロ・マクロ登録・自動起動」の「送信用のエディタ
起動時」の所にもtest.macを登録して、さらに、

 40001,test.mac

 と置き換え指定して、さらに、test.macのsendmessageのコマンドも40001に書
き換えて、「新規メール」コマンドを実行したら、同じ現象が確認できました。
この時、dump.txtに、

10:27:17.342 (   0) tid=4376 ExecCommandMacroSub test.mac
10:27:18.451 (14315) tid=4376 EditorCmd 40001
10:27:18.451 (11159) tid=4376 MsgB2 「マクロ・マクロ登録・コマンド置き換え」
で指定されたマクロを実行しようとしたら、他のウィンドウがマクロ実行中でした。
処理を中断します。
10:27:22.541 (11188) tid=4376 msgB2 1,81
10:27:22.541 (16279) tid=4376 EditorCmd: 40001 ret 1


 のような記録が出て、たしかにtest.macを多重起動しようとしてエラーになっ
てることが確認できます。

 「全般的な設定・上級者向け・デバッグ」の所でdump.txtを取る設定にしてい
ただければ、果たしてどのマクロを実行しようとしてエラーになってるのか確認
できると思います。一回ログ取って欲しいです。

 あるいは、とりあえず自動起動に登録してるマクロ類とか、他に置き換え用に
指定してるマクロがあれば、それらを外してどうか試してみるとかって作戦もお
願いしたいです。

[ ]
RE:48056 コマンド置き換えについてNo.48057
秀まるお2 さん 15/06/04 10:55
 
 dump.txtのログ取っていただけた場合は、そのログの、コマンド実行の開始時
点からエラーが出るまでのログ全部欲しいです。

 いろいろテストしてただくよりも、それでログ送っていただく方が手っ取り早
いと思うので、すみませんがその作戦でお願いします。会議室に書き込んで都合
悪い場合は"maruo@mitene.or.jp"宛にメールでお願いします。

[ ]
RE:48056 コマンド置き換えについてNo.48059
秀まるお2 さん 15/06/04 11:37
 
 追加ですみません。

>  「全般的な設定・上級者向け・デバッグ」の所でdump.txtを取る設定にしてい
> ただければ

 「上級者向け・デバッグ」じゃなくて「上級者向け・動作の記録」ページでし
た。

[ ]
RE:48057 コマンド置き換えについてNo.48061
K'zawa さん 15/06/04 13:18
 
秀まるおさん、こんにちは。
K'zawaです。

> 「全般的な設定・上級者向け・デバッグ」の所でdump.txtを取る設定にしてい
>ただければ、果たしてどのマクロを実行しようとしてエラーになってるのか確認
>できると思います。一回ログ取って欲しいです。

すいません、具体的にはどこをいじればdump.txtが出るのでしょうか?
デバッグレベルに1とか2とか入れてみたんですが、…。

[ ]
RE:48061 コマンド置き換えについてNo.48062
秀まるお2 さん 15/06/04 13:43
 
 後で修正のコメントを書いてしまったのですが、手遅れだったようで、すみま
せん。

 「上級者向け・デバッグ」じゃなくて、「上級者向け・動作の記録」のページ
の中にあります。「動作の記録」ページを選択してから6回タブキーを押すか、
またはAlt+Dキーを押せばいいかと思います。

 デバッグレベルは0のままにしておいて欲しいです。1以上にすると余計なログ
が出たりしますので…。

[ ]
RE:48062 コマンド置き換えについてNo.48063
秀まるお2 さん 15/06/04 14:54
 
 dump.txt送っていただいて状況理解しました。

 40318のコマンド、つまり、「前のタブ」のコマンドを実行した結果test.mac
が実行されてエラーが出てたのかと思っていたのですが、そうじゃなくて、
「マクロ」メニューからtest.macを指定して実行した時にエラーが出てるのです
ね。

 この場合は、たしかに問題のエラーが出てしまうことが確認できました。

 この場合は、エラーを出さずに、しかもマクロによる置き換えもせずに、普通
に40318のコマンドを実行するようにさせていただきます。ヘルプも直します。

 次のβ版にて修正させていただきます。

[ ]
RE:48063 コマンド置き換えについてNo.48071
K'zawa さん 15/06/04 19:11
 
秀まるおさん、こんにちは。
K'zawaです。

> この場合は、エラーを出さずに、しかもマクロによる置き換えもせずに、普通
>に40318のコマンドを実行するようにさせていただきます。ヘルプも直します。

よろしくお願いします。

ところで、

> 40318は「前のタブ」コマンドなんですが、このコマンドコードはどうやって
>見つけられたのですかね。

たぶん秀まるおさんに聞きました。
タブ操作関係のコマンドは全部音声化機能付きマクロ作ってありますので。

[ ]
RE:48071 コマンド置き換えについてNo.48073
秀まるお2 さん 15/06/05 09:23
 
 せっかくなので、キー割り当て一覧に出てくるコマンドも、「コマンドの番号
を調べる(C)▼」のメニューから分かるようにしてみます。

[ ]
RE:48063 コマンド置き換えについてNo.48095
K'zawa さん 15/06/09 19:37
 
秀まるおさん、こんにちは。
K'zawaです。

> この場合は、エラーを出さずに、しかもマクロによる置き換えもせずに、普通
>に40318のコマンドを実行するようにさせていただきます。ヘルプも直します。
>
> 次のβ版にて修正させていただきます。

うまく動くようになりました。
ありがとうございます。

[ ]