English help on website



DDE関連マクロ(Ver9.55対応版)
目次− DDE関連マクロ
 秀丸エディタには、DDEクライアントを実現するためのマクロの文や関数があります。
ddeinitiate文
例:ddeinitiate $app, $topic;
秀丸エディタをクライアントとするDDEトランザクションを開始します。
パラメータ1がアプリケーション名で、パラメータ2がトピック名です。

ddeトランザクションは現在の秀丸エディタだけに有効です。nexthidemaru等でアクティブウィンドウを切り替えるとddeトランザクションは自動的に終了させられてしまいます。

複数のDDEサーバと同時にトランザクションを開設することはできません。

成功すると結果コード(result)が0以外になり、失敗すると0になります。

ddeterminate文
ddeinitiateしたトランザクションを終了します。
ddeterminateしなくても、マクロが終了したり、nexthidemaruなどでアクティブウィンドウが切り替わると自動的にDDEトランザクションは終了します。

ddeexecute文
例:ddeexecute $exec;
DDEサーバにパラメータ1にで指定されたEXECUTEコマンドを送信します。

成功すると結果コード(result)が0以外になり、失敗すると0になります。

ddepoke文
例:ddepoke $item, $param;
DDEサーバにデータを送ります。

成功すると結果コード(result)が0以外になり、失敗すると0になります。

dderequest( s1 ) 関数
例:$ret = dderequest( $item );
DDEの相手にデータを要求します。
成功すると、受け取ったデータを返します。
失敗するとマクロエラーとなってしまいます。
返す値は文字列型です。

ddestartadvice文
例:ddestartadvice $item, $name
DDEサーバとの間でアドバイスループを開始します。アドバイスループのアイテム名は$itemです。サーバ側からデータが渡されると、その値は$nameで指定される変数に格納されます。$nameの所には文字列型のグローバル変数名を指定する必要があります。

アドバイスループは1つしか作ることができません。

ddestopadvice文
例:ddestopadvice $item;
$itemのアドバイスループを終了させます。
$itemはddestartadviceした時に指定したアイテム名を指定する必要があります。

ddewaitadvice文
例:ddewaitadvice $item, #timeout;
DDEサーバから$itemのアドバイスデータが届くのを待ちます。
#timeoutはタイムアウトで、ここで指定した時間を待ってもデータが届かない場合はデータを受け取らずにddewaitadviceを終了させます。

タイムアウトの場合はresultはfalseになり、ddestartadviceで指定した変数には何も格納されません。

#timeoutの値はミリ秒単位で指定します。

ddewaitadviceを実行中は秀丸エディタは凍り付いたような状態になります。

keepdde文
例:keepdde;
keepddeを実行した後は、自動的にトランザクションを終了しないようになります。(V9.00以降)
終了していない状態で、再びマクロを実行し、ddeinitiateで同じ文字列の場合はトランザクションの終了も開始もすることなく、前回のトランザクションを続行します。
ddeinitiateが違う文字列の場合は、自動的に終了し、新しいトランザクションを開始するようになります。

ddeinitiatew文
ddeexecutew文
ddepokew文
dderequestw( s1 ) 関数
ddestartadvicew文
ddestopadvicew文
ddewaitadvicew文
それぞれの文/関数のUnicode版です。(V8.56以降)

参照:
findwindow
findwindowclass
sendmessage