PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
1158 | 98/04/07 14:50:33 | RE(6):アプリケーションの2重起動防止について By Kochan |
1139 | 98/04/06 10:42:34 | RE(5):アプリケーションの2重起動防止について By ふくちゃん |
1137 | 98/04/04 16:11:22 | RE(4):アプリケーションの2重起動防止について By M.M |
1135 | 98/04/03 23:25:54 | RE(3):アプリケーションの2重起動防止について By aki |
1134 | 98/04/03 18:51:09 | RE(2):アプリケーションの2重起動防止について By ふくちゃん |
1131 | 98/04/03 15:11:47 | RE(1):アプリケーションの2重起動防止について By Kochan |
1110 | 98/04/02 17:25:31 | アプリケーションの2重起動防止について By ふくちゃん |
カテゴリ:旧電子会議室
日付:1998年04月04日 16:11 発信者:M.M
題名:RE(4):アプリケーションの2重起動防止について
「ふくちゃん」さん「kochan」さん、こんにちは。
>>アプリケーションの2重起動について
>>IF Handle(This, TRUE) > 0 THEN
>> MessageBox(\"アプリケーション実行中\",\"このプログラムは既に起動しています。\")
>> HALT CLOSE
>>END IF
>>とアプリケーションのOpenに書けば防止できますよ。とかいたのですが、PB5でも
>>できますか?PB4までの物に関しては制御できるようなんですが
>ふくちゃんさん、こんにちは。
>
>上記の件ですが、私のところ(PB5.0.02)では動いてますよ。
>( Handle の第一引数として、This ではなくてアプリケーション名を直接書いてますが。
> Helpにあるように、Thisで、ちゃんと動くと思いますけど。)
アプリケーションの二重起動防止で、
IF Handle(This, TRUE) > 0 THEN
MessageBox(\"アプリケーション実行中\",\"このプログラムは既に起動しています。\")
HALT CLOSE
END IF
が有効なのは、PowerBuilderアプリケーションが16bitの場合です。
というのは、16bitウィンドウズアプリケーションでは、同じアプリケーションは、リソース節約のため同じEXEやDLL
をメモリ上で共有し、それでアプリケーションを区別するため、2つめのアプリケーションのハンドルが0以外の値に
なります。
32bitウィンドウズアプリケーションでは、同一アプリケーションでもプロセスが別々に生成されるため、アプリケー
ションのハンドルは常に0です。それで、Handle関数での識別が無効になります。
ちなみに、32bitアプリケーションは複数のアプリケーションが別々のプロセスで動作しているため、メモリの消費量は
増えましたが、1つのアプリケーションがエラーでダウンしても、基本的にOSや他のアプリケーションに影響を及ぼ
すことがなくなりました。
それで、Windows3.1+PowerBuilder3や4のころのように、PowerBuilderでエラーが発生するたびにWindowsを再起動す
るという不愉快な作業がなくなりました。ありがたいことです。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS (記載なし)
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.