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 (記載なし)

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