2013年4月5日金曜日

[delphi] ユーザーデータ出力ディレクトリ等の取得

ユーザーデータをインストールディレクトリに出力するアプリケーションは、行儀が悪いです。
Windows Vista以降では、virtual storeの仕組みが導入されてましにはなりましたが。。。

というわけで、アプリケーションからWindows固有のディレクトリPATHを取得する関数 SHGetFolderPath を調べました。



procedure TForm2.Button3Click(Sender: TObject);
var
 path : String;
begin

  SetLength(path, MAX_PATH);
  if Succeeded( SHGetFolderPath(0, CSIDL_APPDATA, 0, SHGFP_TYPE_CURRENT, PChar(path) ) ) then begin
    ShowMessage(path);
  end;

end;

第1引数: 0
第2引数:  CSIDL_APPDATA // アプリケーションデータ出力ディレクトリ
参考 CSIDLについて 

第3引数:0 // Windows 2k 以前は、必ず0らしい
第4引数 SHGFP_TYPE_CURRENT // 現在の設定 デフォルトを得たい場合は SHGFP_TYPE_DEFAULT
第5引数: path


参考サイト

Windows Vista UAC Control with delphi

0 件のコメント:

コメントを投稿