PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
20409 | 03/10/09 11:09:21 | RE(7):PB7.0: 特殊フォルダ(デスクトップ、スタートメニュー)の取得について By itameya |
20405 | 03/10/09 00:35:39 | RE(6):PB7.0: 特殊フォルダ(デスクトップ、スタートメニュー)の取得について By isii |
20403 | 03/10/08 18:01:28 | RE(5):PB7.0: 特殊フォルダ(デスクトップ、スタートメニュー)の取得について By itameya |
20400 | 03/10/08 17:52:38 | RE(4):PB7.0: 特殊フォルダ(デスクトップ、スタートメニュー)の取得について By hirotyan |
20398 | 03/10/08 17:29:53 | RE(3):PB7.0: 特殊フォルダ(デスクトップ、スタートメニュー)の取得について By itameya |
20192 | 03/08/27 08:48:23 | RE(2):PB7.0: 特殊フォルダ(デスクトップ、スタートメニュー)の取得について By innan-taka |
20189 | 03/08/26 17:03:09 | RE(1):PB7.0: 特殊フォルダ(デスクトップ、スタートメニュー)の取得について By hirotyan |
20187 | 03/08/26 15:25:10 | PB7.0: 特殊フォルダ(デスクトップ、スタートメニュー)の取得について By innan-taka |
カテゴリ:PowerBuilderの開発環境
日付:2003年10月09日 00:35 発信者:isii
題名:RE(6):PB7.0: 特殊フォルダ(デスクトップ、スタートメニュー)の取得について
itameyaさん、こんばんは。
>早速のアドバイスありがとうございます。
>環境はwin2000なので、問題はないと思うのですが、
>16,22,0,1等試してみましたが、一切何も表示されません。
>ネットで調べてもVB等は見つかるのですが
>その記述では
>CSIDL_DESKTOPDIRECTORY
>等となっており、PBでの場合と与え方が異なっているようでうまくいきません。
>
>番号が間違ってるだけならば、別の場所のPathが表示されてもいいと思うので
>別の場所が間違っているのかもしれません。
原因は、SHGetPathFromIDList()の定義が間違っているためです。
第二引数のpszPathは、ポインタ渡しなのでrefを付ける必要があります。
Function Long SHGetPathFromIDList(long pidl, ref string pszPath)
LIBRARY \"shell32.dll\" Alias for \"SHGetPathFromIDListA\"
CSIDL_DESKTOPDIRECTORYは、どこかで宣言されているはずです。
ただし、言語によって宣言の仕方が違います。
PBでは、16進数で表記できないため以下のようになります。
CONSTANT CSIDL_DESKTOP = 0
CONSTANT CSIDL_INTERNET = 1
CONSTANT CSIDL_DESKTOPDIRECTORY = 16
CONSTANT CSIDL_COMMON_STARTMENU = 22
その他の値等はインターネット等で調べてください。
余談ですが、レジストリから取得する方法もあります。
HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows 2000
DBMS Microsoft SQL Server Client 6.5
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.