我刚刚创建了一个带有复选框的自定义对话框,询问用户是否要创建桌面快捷方式。我过去总是包含一个我不使用该AskText()
功能的快捷方式,因为我计划稍后在此页面中添加更多内容,并希望将这几个选项简化到这一页面。
当我运行时,我的桌面上有一个项目,但这不是我所期望的。目标似乎指向桌面本身的一个位置,而不是实际的可执行文件。此外,此快捷方式不会在卸载时删除(我假设这需要单独处理)并且快捷方式需要手动删除管理员权限(出于明显的原因,我不希望这样做)。
下面是我的 InstallScript 代码。它是在 . 之后插入的自定义操作中InstallFiles
。
function MyFunction(hMSI)
STRING szProgramFolder, szItemName, szCommandLine, szWorkingDir;
STRING szShortCutKey, szProgram, szParam, szIconPath;
NUMBER nIcon, nResult;
begin
szProgramFolder = FOLDER_DESKTOP;
szItemName = "myProgram";
szProgram = INSTALLDIR + "myProgram.exe" ;
LongPathToQuote (szProgram, TRUE);
szCommandLine = szProgram;
szWorkingDir = INSTALLDIR;
szIconPath = "";
nIcon = 0;
szShortCutKey = "";
nResult = AddFolderIcon (szProgramFolder, szItemName, szCommandLine,szWorkingDir,
szIconPath, nIcon, szShortCutKey, REPLACE);
end;
尽管我对InstallShield(更不用说InstallScript)的了解非常有限,但我不太确定我在哪里出错了。