PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
20154 | 03/08/21 11:10:32 | RE(7):PB7.0: 実行ファイルのディレクトリの取得 By roichan2 |
20151 | 03/08/20 19:37:14 | RE(6):PB7.0: 実行ファイルのディレクトリの取得 By Taka |
20144 | 03/08/20 14:04:52 | RE(5):PB7.0: 実行ファイルのディレクトリの取得 By isii |
20141 | 03/08/20 12:06:12 | RE(4):PB7.0: 実行ファイルのディレクトリの取得 By roichan2 |
20140 | 03/08/20 11:32:36 | RE(3):PB7.0: 実行ファイルのディレクトリの取得 By isii |
20139 | 03/08/20 11:06:22 | RE(2):PB7.0: 実行ファイルのディレクトリの取得 By roichan2 |
20138 | 03/08/20 10:49:55 | RE(1):PB7.0: 実行ファイルのディレクトリの取得 By isii |
20137 | 03/08/20 09:56:13 | PB7.0: 実行ファイルのディレクトリの取得 By roichan2 |
カテゴリ:スクリプトの記述
日付:2003年08月20日 19:37 発信者:Taka
題名:RE(6):PB7.0: 実行ファイルのディレクトリの取得
roichan2さん、isiiさん、こんばんは。
>>FileNameに何も入っていないのは、使用しているスクリプトに影響していると思います。
>>コントロール(コマンドボタン等)のスクリプトで使用する場合は、thisではなくparentに変更
>>しないと、アプリケーションのハンドルが求まりません。
>>GetModuleFileNameA( Handle( parent ), FileName, lBuf )
(中略)
>スクリプトはウィンドウのOpenイベントに記述しているので、thisでいいと思います。
良くないです。
ウィンドウのOpenイベントでthisを参照すると、それはウィンドウそのものになります。
それをHandle()して得られるのは、ウィンドウのハンドルになります。
これに対し、isiiさんが書いている方法は、あくまでもアプリケーションオブジェクトのハンドルを
求めていますよね。この点が違うのでは?
更に言うと、GetModuleFileName()の第1引数は、この場合でしたらゼロを与えて構いません。
アプリケーションオブジェクトはPB独自のものであり、Windowsが認識できるハンドルを伴う
オブジェクトではありません。
よって、Handle(GetApplication()) の戻り値はゼロになっているはずです。
追記:
有効なウィンドウハンドルの値を使ってGetModuleFileName()すると、確かにエラーになるようです。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows 2000
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.