peetです。質問です。
ある市販のアプリケーションを、自作のランチャから起動しようと
VBで作っています。
動きとしては、
自作ランチャから画面Aを起動します(このとき、引数も渡します)。
画面Aは受け取った引数を整形し、画面Bを呼び、すぐに自分自身で閉じます。
画面Bが起動します。
この一連の処理の中で、画面Bが正常に起動できたか(上がりきった)を
自作ランチャでチェックしたいのですがどうすればいいのかわかりません。
環境はWindowsXP+VB6です。
画面ですか…色々誤解が生まれそうですね。
で、「画面」がプロセスを指しているのなら、「WMI」か「プロセス 列挙」でググってみてください。
「画面」が本当にウィンドウを指しているのなら、「EnumWindows」でググってみてください。
※他に「画面」といえば…ディスプレイ?
どうもです。
すみません、画面とはウィンドウのことです。
EnumWindowsをつかってみました。画面AがBを呼ぶまでに時間が
かかっていて、画面Bのプロセスを取得できませんでした。
> EnumWindowsをつかってみました。
> 画面AがBを呼ぶまでに時間がかかっていて、
> 画面Bのプロセスを取得できませんでした。
※EnumWindowsで取得できるのはプロセスではなくウィンドウハンドルです。
「取得できませんでした」ではなく、
数秒間、ずーっと試行し続けるのは駄目なのですか?
>「取得できませんでした」ではなく、
> 数秒間、ずーっと試行し続けるのは駄目なのですか?
試行し続ける事も考えてみましたが、
画面Bが起動できなかったときや
起動までに数分掛かることを考えるとどうすればよいのか。
> 画面Bが起動できなかったときや
> 起動までに数分掛かることを考えるとどうすればよいのか。
素直にタイムアウト時間を設定すればいいのでは…?
※画面Bが何か情報を発しているのなら言うこと無いのですが…
ないですよねぇ…
>素直にタイムアウト時間を設定すればいいのでは…?
画面Bが起動できなかったら、自作アプリも一緒に閉じたいです。
>※画面Bが何か情報を発しているのなら言うこと無いのですが…
> ないですよねぇ…
「Form_Loadが完了したよ」っていうMSGが貰えたら
ベストなんですが…
こういうのって他ではどうしてるのかなぁ。
ツイート | ![]() |