23時25分18秒 [C++ Builder]
「マイドキュメント」とか「スタートアップ」とか「お気に入り」みたいな特殊なフォルダは、環境やユーザの設定によって位置が異なります。
なので、これらの特殊なフォルダにアクセスするプログラムを作る際には、パスを決め打ちで作るわけにはいかず、Windows側から取得する必要があります。
特殊なフォルダのパスを取得するには、SHGetSpecialFolderLocationとSHGetPathFromIDListを使います。
以下のよーな感じで。
上記は、「マイドキュメント」(=CSIDL_PERSONAL)のフルパスを取得する場合。
「CSIDL_PERSONAL」の部分をいろいろ変えると、いろんな特殊フォルダのパスが得られます。例えば、以下のよーなもの。
CSIDL_PROGRAMS | Program Files |
CSIDL_PERSONAL | マイドキュメント |
CSIDL_FAVORITES | お気に入り |
CCSIDL_STARTUP | スタートアップ |
CSIDL_RECENT | 最近使ったファイル |
CSIDL_SENDTO | 送る |
CSIDL_BITBUCKET | ごみ箱 |
CSIDL_STARTMENU | スタートメニュー |
CSIDL_DESKTOPDIRECTORY | デスクトップ |
CSIDL_COMMON_STARTMENU | All Usersのスタートメニュー |
CSIDL_COMMON_STARTUP | All Usersのスタートアップ |
CSIDL_COMMON_DESKTOPDIRECTORY | All Usersのデスクトップ |
CSIDL_WINDOWS | Windowsフォルダ |
こんな感じでいろいろあります。
もっとたくさん定義されてるんだけど、書いてられないので省略。(^_^;)
まあ、私が使いそうなのはこれくらいかなと。
これらの定義は、Borland C++ BuilderフォルダのIncludeフォルダ内にある shlobj.h ヘッダファイルの1705行目から記述されてますので、そこを参照しましょう。
この日記へのコメントはお気軽に! コメント数:0件
コメント数: 0件