☆特殊フォルダのパス名を取得する。
SHGetFolderPathを使って特殊フォルダのパス名を取得してみます。
この関数は、SHFolder名前空間に定義されていますが、なぜか第4パラメーターdwFlagsのフラグが定義されていません。 又、SHFolder.dllからの呼び出しになっていますが、MSDNによると現在は、shell32.dllで実装されているとのことです。 但し、下位互換のためSHFolder.dllは含まれているとのことで特に問題はなさそうです。
下記のコードでMy Documentsフォルダが取得できました。
MSDN
SHGetFolderPath Function
http://msdn2.microsoft.com/en-us/library/bb762181.aspx
この関数は、SHFolder名前空間に定義されていますが、なぜか第4パラメーターdwFlagsのフラグが定義されていません。 又、SHFolder.dllからの呼び出しになっていますが、MSDNによると現在は、shell32.dllで実装されているとのことです。 但し、下位互換のためSHFolder.dllは含まれているとのことで特に問題はなさそうです。
下記のコードでMy Documentsフォルダが取得できました。
uses SHFolder; const // dwFlags用フラグ SHGFP_TYPE_CURRENT = 0; SHGFP_TYPE_DEFAULT = 1; procedure TForm1.Button1Click(Sender: TObject); var Path: String; begin SetLength(Path, MAX_PATH); if Succeeded(SHGetFolderPath(0, CSIDL_PERSONAL, 0, SHGFP_TYPE_CURRENT,PChar(Path))) then begin SetLength(Path, Pred(Pos(#0, Path))); ShowMessage(Path); end; end;
MSDN
SHGetFolderPath Function
http://msdn2.microsoft.com/en-us/library/bb762181.aspx
| 固定リンク