フォルダ選択でマイドキュメントを規定値

[戻る]
ロメオ 2008/12/17(水) 10:22:07
宜しくお願いします。

作成したフォームのボタンAを押下する事でファイル保存用のフォルダ選択ダイアログを
表示しようと思っています。

調べてみるとSHBrowseForFolderというものがあり、これを使おうと思っているのですが
「マイドキュメントを規定値にする」という方法がわかりません。
「C:\Document and Settings\USER\MyDocument」という表現はできるのですが、パスとし
てのMyDocumentではなく、「デスクトップ」のようにショートカットといいますか(うま
く言葉が思いつきませんが)、いわゆる「マイドキュメント」というトップディレクトリ
を規定値にしたいと思っています。

うまく説明できませんが、どなたか理解していただける方いらっしゃいましたらご教授く
ださい。

aetos 2008/12/17(水) 10:47:21
検索したらこんなの出ました。
http://hp.vector.co.jp/authors/VA016117/shbff.html

これを参考に、コールバック関数で初期フォルダを設定します。
デスクトップ上のマイドキュメントの ITEMIDLIST を得るには、SHGetFolderLocation 
に CSIDL_PERSONAL を渡して取得します(動作環境を Windows Vista 以降に限定してよ
いなら SHGetKnownFolderIDList に FOLDERID_Documents)。
ITEMIDLIST は後で解放するのを忘れずに。

ABCB 2008/12/19(金) 12:04:45
環境変数[USERPROFILE]を使ってみてはどうですか。
XPならここに「C:\Document and Settings\USER」までが設定されています。

aetos 2008/12/20(土) 19:14:42
> XPならここに「C:\Document and Settings\USER」までが設定されています。

その下のフォルダ名が「My Documents」であるとは限りませんよ。

... 2008/12/20(土) 20:59:26
>環境変数[USERPROFILE]を使ってみてはどうですか。
必ず設定されていると言う保証が無い以上、それはどうかと思うが。。。

ももんが 2008/12/21(日) 03:57:34
もしかして
SHGetSpecialFolderLocation ?

aetos 2008/12/21(日) 13:30:56
> SHGetSpecialFolderLocation ?

でもいいし、SHGetFolderLocation でもいい。

SHGetFolderLocation
http://msdn.microsoft.com/en-us/library/bb762180(VS.85).aspx

SHGetSpecialFolderLocation
http://msdn.microsoft.com/en-us/library/bb762203(VS.85).aspx

古いスレッドには追加発言できません。