ユーザーデータをインストールディレクトリに出力するアプリケーションは、行儀が悪いです。
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 件のコメント:
コメントを投稿