PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
22763 06/09/01 13:42:55 RE(2):PB8.0: RUN関数で実行したアプケーションが完了するまで待ちたい By indian
22743 06/08/11 16:22:38 RE(1):PB8.0: RUN関数で実行したアプケーションが完了するまで待ちたい By kitsunerisu
22742 06/08/09 19:15:09 PB8.0: RUN関数で実行したアプケーションが完了するまで待ちたい By BSW311

カテゴリ:PowerBuilderの開発環境
日付:2006年09月01日 13:42 発信者:indian
題名:RE(2):PB8.0: RUN関数で実行したアプケーションが完了するまで待ちたい

BSW311さん、こんにちは。

>こんにちは。
> 今、RUN関数でアプリケーションを実行して、それが完了するまで待って、
> 完了してから後続の処理を行いたいのですが、どうしたらよいかわかりません。
> どなたか対応方法をご存知の方がいらっしゃいましたら、ご教授願いします。
> よろしく御願いします。

RUN関数で起動しているアプリケーションのWindow名が分かっているのであれば
FindWindowAというWindowsAPI関数を使用して、起動中かどうかを判定できるので
この関数をTimerイベントで定期的に実行するという手も考えられます。
以下、PB9.0のヘルプのコピーです。
------------------------------------------------------------------------
Windows 上のアプリケーションでは、previous フラグが TRUE の場合、Handle 関数は有効な値を返しませ
ん。 Windows アプリケーションがすでに実行されているかどうかを確認するには、Windows の FindWindowA 
関数を使用してください。
FindWindowA を、グローバルな外部関数として宣言します。

FUNCTION uint FindWindowA (long classname, string windowname) LIBRARY \"user32.dll\"

次のようなコードを、アプリケーションの Open イベントに追加します。

uint  val
val = FindWindowA(0, \"MyApp Main Window\")
IF val > 0 THEN
    MessageBox(\"アプリケーションは実行中です\", & 
    \"MyApp は既に実行中です。.& 
       起動できません。\") 
   HALT CLOSE
ELSE
   open(w_main)
END IF

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows XP
DBMS Oracle Net 9
Browser InternetExplorer

Server SoftWare

OS Windows 2000
DBMS Oracle9i
WebServer IIS

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