現在winXPにて使用していたツールのwin98対応をした際に
ちょっとした不具合が起きましたので解決策を教えてください。
現象は、VB6にて作成しているのですが、実行中の一部の昨日を
C言語で対応している箇所があり、XPではその箇所の処理に入ると
自動的にDOSプロンプトが立ち上がって実行し、終了すると
DOSプロンプト自体も消えていたのですが、
98で動作させたところ、その箇所でDOSが立ち上がったままになって
しまうのです。
API等でDOSをCLOSEさせれるのではと思慮しておりますが、
現在のところ、それに該当するAPIを探し出せておりません。
同様の処理が行えるものでしたらなんでも検討しますので
ご教示願います。宜しくお願い致します。
試してませんがソフトからバッチファイルを起動するようにして
バッチファイルに目的のexeを実行した後、exitを入れたらどうでしょう。
バッチファイルの内容
hoge.exe
exit
APIを使いたいのなら、
FindWindowかEnumWindowsでひっかけて、
WM_CLOSEをSendMessageする、
といったところでしょう。
123様、Say様
早速のご返答ありがとうございます。
御両名の案を試してみます。
windows98だと
Commannd.comが動くのでしょうか?
なら
Command.com /C 処理
にしてはどうでしょうか?
WindowsXPの時も考慮して
Cmd.exe /C 処理
でも動くようにしましょう。
>あん様
「Command.com /C 処理」ってどのようなものでしょうか?
解る範囲でご教示いただきたいです。
>皆さま
調べているうちに、
「lRet = Shell(strBatString, vbHide)」
というものが引っかかったのですが、
vbHideは非表示で起動するとあるのですが、
見えないだけで裏で溜まったりしないのでしょうか?
処理を実行した後、
EXITも実行するそうです
(ウインドウが閉じるはず?)
例えばこんな感じですね
ChDir "c:\"
Call Shell(Environ$("comspec") & " " & "/c " & Environ$("comspec") & " /? > hoge.txt")
Command.comで希望の動作が実現しました!
ありがとうございました!
ツイート | ![]() |