PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
23801 11/08/02 18:51:28 RE(2):PB11.5:外部アプリケーションの監視(起動からタスクバーにボタンが作成されるまで) By itigo
23800 11/07/23 08:52:39 RE(1):PB11.5:外部アプリケーションの監視(起動からタスクバーにボタンが作成されるまで) By ace
23799 11/07/21 16:46:12 PB11.5:外部アプリケーションの監視(起動からタスクバーにボタンが作成されるまで) By itigo

カテゴリ:スクリプトの記述
日付:2011年07月21日 16:46 発信者:itigo
題名:PB11.5:外部アプリケーションの監視(起動からタスクバーにボタンが作成されるまで)

こんにちは。

アプリケーション(Aとします)から別のアプリケーション(Bとします)を起動する際に、
アプリBが完全に起動する(タスクバーにボタンが表示される)までに
【起動中…】というウィンドウを出す、という処理を作成しようとしています。
ただ、現在タスクバーにボタンが表示される前に【起動中…】のウィンドウが閉じてしまい困っています。
以下スクリプトです。

OPEN(w_kidoutyu) // 【起動中…】テキストを張り付けたウィンドウのOPEN

CreateProcess(Null, アプリBのパス, Null, Null, False, 0, アプリBの格納パス, 
STARTINFO,PROCESS_INFORMATION)

if WaitForInputIdle(PROCESS_INFORMATION.hProcess,120000) = 0 then
   CLOSE(w_kidoutyu)
end if

というような形で処理を行っています。
また、アプリBのOpenイベントでは以下の処理を行っています。
?DB接続
?接続に成功したらウィンドウのOpen(ここで初めてタスクバーにボタンが作成される)

本当は?の処理が終わった後にWaitForInputIdle関数で0を返してほしいのですが、
どうも、?の処理が終わった時点で0を返してしまうらしく、
?の処理でタスクバーにボタンが作成される前に【起動中…】のウィンドウが閉じてしまいます。

アプリBの?でOpenするウィンドウタイトルはユーザが任意に変更出来るので、
FindWindowAやGetWindowTextAなどは使用できません。
また、アプリBは担当者が違うため、改修を入れることができません。

どなたか、外部アプリケーションの起動?タスクバーにボタンが作成されるまでを監視する処理をご存じない
でしょうか?
よろしくお願いいたします。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows XP
DBMS Sybase SQL Anywhere Client
Browser InternetExplorer

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.