また(^^; run 文に問題が…No.04027
杉浦 まさき さん 99/09/15 00:14
 
ども、杉浦 まさき です。

WinNT 上のみでの現象ですが、
マクロの run 文でマクロサーバ(もしくは拙作の田楽鯖)を
実行して、
ddeexecute "run command.com";
を実行するとコンソールウィンドウに延々と「ハンドルが無効です」
という文字が出続けます。
また、他の 16bit DOS アプリ(例えば lha)も
ddeexecute "run lha.exe";
とするとコンソールに何も表示せずに終了してしまいます。
#正常なら lha の使い方の説明が表示されるはず。

なお、マクロ中で run するのでなくマクロを実行する前に
サーバを起動しておくと上のような現象は発生しません。

マクロの run 文は子プロセスのコンソール出力を
秀丸ウィンドウにリダイレクトするために
CreateProcess の *STARTUPINFO 引数に
色々設定を行っているものと思いますが、
それが孫プロセスにまで影響を与えているみたいなのです。

(NT の)CreateProcess API のバグのような気もしますが、
もし秀丸側で対処できるならよろしくお願いしますm(_ _)m。

#CreateProcess で DOS アプリを実行すると
 return は TRUE なのに LastError 値が
 「ハンドルが無効です」となる怪現象?を確認してますが、
 この辺の話がらみかもしれません。


[ ]
RE:04027 また(^^; run 文に問題が…No.04030
杉浦 まさき さん 99/09/15 23:39
 
ども、再び 杉浦 まさき です。

前回の発言に若干補足です。

>WinNT 上のみでの現象ですが、

Win98 でも再現しましたm(_ _)m。
おそらくは Win95 でも発生すると思われますが、
手元にないので確認できません。

>マクロの run 文は子プロセスのコンソール出力を
>秀丸ウィンドウにリダイレクトするために
>CreateProcess の *STARTUPINFO 引数に
>色々設定を行っているものと思いますが、
>それが孫プロセスにまで影響を与えているみたいなのです。

子プロセス側で標準入出力を無効にしたら正常に動作しました。
このことからも上の予想が正しいことがより確実になったわけですが、
とりあえず対処法が分かったので
この件については余力があったら(^^;検討しておいて下さい。


[ ]
RE:04030 また(^^; run 文に問題が…No.04036
秀丸担当 さん 99/09/16 18:13
 
どうも、run文には問題が多いですね。
たびたびすみません。
こんど落ち着いたらまた調べてみます。

[ ]