在 Inno 安装程序中调试不工作的帕斯卡检查条件 (目录存在)



我试图为未来的用户编译一个小安装程序,我已经了解如何更改一些东西。

但是现在我想仅在目录存在时才创建一个快捷方式。我试图做这样的事情,但什么也没发生......

[Icons]
; Start menu icon
Name: "{group}Myprogram"; Filename: "{app}Myprogram.exe"
; Desktop icon
Name: "{userdesktop}Myprogram.exe"; Filename: "{app}Myprogram.exe"; 
Check: DirExists(ExpandConstant('C:[path]test'))

你的代码没问题。它应该做你想做的事。为了帮助调试,请实现一个记录测试的用户函数,如下所示:

[Icons]
Name: "{userdesktop}P680.exe"; Filename: "{app}P680.exe"; 
Check: DirExistsLogged('C:UsersadministratorDocumentsTest')
[Code]
function DirExistsLogged(Path: string): Boolean;
begin
Result := DirExists(Path);
Log(Format('DirExists [%s] => %d', [Path, Result]));
end;

日志示例,当文件夹存在时:

2019-12-31 15:04:59.565   DirExists [C:UsersadministratorDocumentsTest] => 1
2019-12-31 15:04:59.565   -- Icon entry --
2019-12-31 15:04:59.565   Dest filename: C:UsersmartinDesktopMy Program.exe.lnk
2019-12-31 15:04:59.566   Creating the icon.
2019-12-31 15:04:59.583   Successfully created the icon.
2019-12-31 15:04:59.594   Saving uninstall information.

日志示例,当文件夹不存在时:

2019-12-31 15:06:23.960   DirExists [C:UsersadministratorDocumentsTest] => 0
2019-12-31 15:06:23.960   Saving uninstall information.

最新更新