PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
1719 | 98/06/08 11:16:27 | RE(4):PB6: NT or 95:EXEの多重起動防止(FindWindowAは使えない・・・) By Air Hawk |
1715 | 98/06/08 10:30:03 | RE(3):PB6: NT or 95:EXEの多重起動防止(FindWindowAは使えない・・・) By こてちゅ |
1697 | 98/06/05 13:14:35 | RE(2):FindWindowAでもできます。しかし・・・ By かじ |
1691 | 98/06/05 11:06:44 | RE(1):FindWindowAでもできます。しかし・・・ By あすかちゃんの父 |
1677 | 98/06/04 18:12:46 | PB6: NT or 95:EXEの多重起動防止(FindWindowAは使えない・・・) By こてちゅ |
カテゴリ:旧電子会議室
日付:1998年06月05日 11:06 発信者:あすかちゃんの父
題名:RE(1):FindWindowAでもできます。しかし・・・
こてちゅさん、こんにちは。
>PBのアプリケーション起動時に多重起動を防止したいのですが、
>APIのFindWindowAでは、タイトルバーの文字列を正しく入力しなければならない為、
>使用できません。(SDIで画面遷移していくのと、画面毎にタイトルバーが違う為。)
>
>FindWindowAを使用せずに簡単に多重起動を防止する方法はないでしょうか?
APIのFindWindowAで、ウィンドウタイトルを使用せずにウィンドウ
クラス名を使えば、ウィンドウタイトルを意識せずに特定のアプリが
起動しているかどうか、調べることができます。スクリプトはwordの
起動チェックをする場合、
// 関数宣言
FUNCTION long FindWindowA(string sClass, long sPassNULL) Library \"user32.dll\"
// スクリプト
string word_class =\"OpusApp\"
long app_hwnd
app_hwnd = FindWindowA(word_class, 0)
if app_hwnd > 0 then
messagebox(\"word\", \"wordは起動しています\")
else
messagebox(\"word\", \"wordは起動していません!!\")
end if
でできます。
しかしここで1つ問題が・・・・・
ウィンドウクラス名を調べる方法が分からないのです。(T_T)
アプリケーション固有のウィンドウクラス名が定義されている
はずですが、どうやって調べれば良いのやら・・・・・ どなたか
ご存知の方はいらっしゃいませんか?
ちなみに上のスクリプトの\"OpusApp\"はPowerSoftのFAX Line
からの情報です。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS (記載なし)
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.