获取虚拟商店路径?
Get the Virtual Store path?
我正在安装应用程序并想为 ini 文件设置值。不幸的是,我们的主要应用程序仍然建立在一个被重定向到虚拟商店的平台上。有没有办法让 Inno Setup 直接将 ini 文件存储在虚拟存储中?
我相信甚至没有 Windows API 来检索虚拟商店的路径,更不用说使用 Inno Setup 可靠地检索它的可能性了。
不过你可以猜到是{localappdata}\VirtualStore\path
。
[Files]
Source: "MyProg.ini"; DestDir: "{code:GetVirtualStore|{app}}"
[Code]
function GetVirtualStore(Path: string): string;
var
Drive: string;
begin
Result := Path;
Drive := ExtractFileDrive(Path);
if CompareText(Drive, Copy(Path, 1, Length(Drive))) = 0 then
begin
Result := Copy(Result, Length(Drive) + 1, Length(Result) - Length(Drive));
Result := ExpandConstant('{localappdata}\VirtualStore') + Result;
end;
end;
您可能还应该检查该路径是否在系统驱动器上。
我正在安装应用程序并想为 ini 文件设置值。不幸的是,我们的主要应用程序仍然建立在一个被重定向到虚拟商店的平台上。有没有办法让 Inno Setup 直接将 ini 文件存储在虚拟存储中?
我相信甚至没有 Windows API 来检索虚拟商店的路径,更不用说使用 Inno Setup 可靠地检索它的可能性了。
不过你可以猜到是{localappdata}\VirtualStore\path
。
[Files]
Source: "MyProg.ini"; DestDir: "{code:GetVirtualStore|{app}}"
[Code]
function GetVirtualStore(Path: string): string;
var
Drive: string;
begin
Result := Path;
Drive := ExtractFileDrive(Path);
if CompareText(Drive, Copy(Path, 1, Length(Drive))) = 0 then
begin
Result := Copy(Result, Length(Drive) + 1, Length(Result) - Length(Drive));
Result := ExpandConstant('{localappdata}\VirtualStore') + Result;
end;
end;
您可能还应该检查该路径是否在系统驱动器上。