dderequestでエラーNo.14766
k.kiyo さん 03/06/07 17:33
 
こんにちはkiyoです、いつもお世話になってます。
DDEで通信中にsetactivehidemaruでウィンドウを切り替えると
dderequestが失敗するようです。
マクロサーバーで以下のマクロを実行させると
「dderequestで相手が応答しません。」
というエラーが出ます。
確認をお願いします。

run "macserv.exe";
ddeinitiate "HideMacroServer", "AllService";
if( result )
{
setactivehidemaru 1;
$curdir = dderequest( "getcurdir" );
message $curdir;
}
endmacro;


OS WindowsXP
秀丸 Ver3.19


[ ]
RE:14766 dderequestでエラーNo.14767
山紫水明 さん 03/06/07 21:45
 
 k.kiyoさん,こんばんは。

》DDEで通信中にsetactivehidemaruでウィンドウを切り替えると
》dderequestが失敗するようです。
》マクロサーバーで以下のマクロを実行させると
》「dderequestで相手が応答しません。」
》というエラーが出ます。

 あまりよくわかっているわけではありませんが,DDE 通信中にウィンドウの切
り替えはできないのでは?
ddeinitiate "HideMacroServer", "AllService";

setactivehidemaru 1;
の直後に移したらどうでしょう。
 ただし,そのままではマクロサーバが起動されたディレクトリがカレントディ
レクトリになるので,以下のようにする必要があるでしょう。
setactivehidemaru 1;
ddeinitiate "HideMacroServer", "AllService";
ddeexecute "setcurdir " + directory;
$curdir = dderequest( "getcurdir" );
message $curdir;

     では, (^^)/~
                                        山紫水明

[ ]
RE:14767 dderequestでエラーNo.14768
k.kiyo さん 03/06/08 02:00
 
山紫水明さん,こんばんは
> あまりよくわかっているわけではありませんが,DDE 通信中にウィンドウの切
>り替えはできないのでは?
今調べてみると、ウィンドウを切り替えるとDDE通信が切れるようです。
なので、ウィンドウを切り替えるたびにDDEを繋ぎなおせば上手くいきました。


[ ]
RE:14768 dderequestでエラーNo.14773
秀丸担当 さん 03/06/09 14:44
 
>今調べてみると、ウィンドウを切り替えるとDDE通信が切れるようです。
>なので、ウィンドウを切り替えるたびにDDEを繋ぎなおせば上手くいきました。

ウィンドウを切り替えると自動的にDDEトランザクションは終了するので、
切り替えるたびに繋ぎ直す必要があります。

[ ]