我将一些示例文档安装到Windows上标准“我的文档”文件夹的“PerfectTablePlan”子文件夹中。这适用于99%以上的用户。但是,如果用户没有“我的文档”文件夹,我会收到许多错误消息,形式如下:Internalerror:Failedtoexpandshellfolderconstant“userdocs”这对用户来说不是很鼓舞人心!可以不为这些用户安装示例(或将它们安装在其他地方)。但不要显示丑陋的错误消息。问题似乎来自于{userdocs}的ExpandConstant宏扩展。有没有什么方法可以在不使用宏的情况下获取“我的文档”的路径?或者有什么方法可以抑制错误信息?E
我目前正在尝试在卸载时进行验证。在Pascal脚本函数中,在InnoSetup中,我想搜索特定的进程,如果可能的话使用通配符。然后,循环所有的find结果,得到ImageName和ImagePathName,以检查即将卸载的程序是否与正在运行的程序相同。有办法吗? 最佳答案 这是WMI及其WQL语言的典型任务。通过WMI获取正在运行的进程列表甚至比WindowsAPI更可靠。下面的示例显示了如何查询Win32_Process类与LIKE运算符(operator):[Setup]AppName=MyProgramAppVersion=
[Files]Source:"C:\MyProg.exe";DestDir:"{app}";BeforeInstall:GetHome();Flags:ignoreversion[INI]Filename:"{myVarFromPascal}\.MyProg\settings.ini";Section:"Settings";Key:"sound";String:"1";Flags:createkeyifdoesntexist[Code]procedureGetHome();varmyPascalVar:String;beginRegQueryStringValue(HKEY_CURRE
我想使用innosetup终止进程。我想在开始安装安装程序之前检查窗口是否打开。我可以通过搜索窗口名称来做到这一点吗?请帮我提供一些示例代码来终止进程 最佳答案 在[UninstallRun]部分,可以添加如下代码:Filename:{sys}\taskkill.exe;Parameters:"/f/imMyProcess.exe";Flags:skipifdoesntexistrunhidden 关于installation-如何使用innosetup结束进程?,我们在StackOve
我希望我的安装程序将一些文件放入用户主路径(Windows%USERPROFILE%环境变量指向的路径,以及Qt的QDir::homePath()返回的路径)。我看过InnoSetupConstants页面,但找不到我要查找的路径。 最佳答案 使用环境变量{%USERPROFILE}或{%HOMEPATH}。更新作为Martin在评论中指出,不应使用{%HOMEPATH},因为它没有磁盘名称(例如,\Users\username)。 关于windows-InnoSetup用户主页路径,我
在安装程序中,您可以使用以下代码轻松更改向导右上角的小位图:[Setup]WizardSmallImageFile=gfx\bitmap.bmp但是,如何更改卸载程序向导右上角的相同位图?这似乎没有任何参数。我认为解决方案之一是让安装程序将所需的位图提取到{app}中,然后使用此代码:procedureInitializeUninstallProgressForm;varbitmap:string;beginbitmap:=ExpandConstant('{app}\uninst.bmp');uninstallProgressForm.WizardSmallBitmapImage.Bi
我正在使用InnoSetup为我的VB.net应用程序安装补丁更新,我必须替换一个DLL文件和几个javascript/html文件来进行更新。然而,DLL没有得到更新(它在C:\.它不是只读的,并且在XP案例中不涉及UAC/管理员权限。如果文件已经存在,文件没有被复制的原因可能是什么?它是在VS2008和.NET2.0中构建的-新的DLL也有更新的日期和大小差异。有没有办法解决Vista/Win7/8上的UAC写入访问问题?我猜补丁永远不会成功地用UAC替换这些系统上的文件。告诉我们的用户群关闭它显然不是一种选择。[编辑]通过在构建解决方案时从Release文件夹中选取dll程序集,
我正在使用InnoSetup为我的程序创建安装程序,但我希望能够添加图标并更改控制面板(添加/删除程序)中显示的一些信息。我知道InnoSetup添加了一个注册表项来首先列出程序,所以我想知道是否可以以任何方式扩展它,以便至少在列表中显示我的图标! 最佳答案 要更改显示在“添加/删除程序”控制面板小程序程序列表中的图标,请指定UninstallDisplayIcon[Setup]中的指令部分。[Setup]UninstallDisplayIcon={app}\Application.exe如果您想在“添加/删除程序”控制面板小程序中
我有一个非常简单的InnoSetup脚本,其中包含此[Registry]部分:[Registry]Root:HKLM;Subkey:SOFTWARE;Flags:createvalueifdoesntexist;ValueType:string;ValueName:ABC;ValueData:abc但是,当我检查HKLM\SOFTWARE子项时,没有任何附加值。我在HKLM\SOFTWARE和Pascal脚本下尝试了不同的子项,但InnoSetup只是拒绝创建新的子项或值。我运行的是64位Windows7,UAC已关闭。 最佳答案
我的公司正在开发一个应用程序,该应用程序依赖于我们的另一个应用程序。第二个应用程序已经有一个InnoSetup安装程序。所以我想我想将第二个应用程序的安装程序捆绑到第一个应用程序的InnoSetup安装程序中。但我不确定如何正确处理。有谁知道执行此操作的“正确方法”?我找到了这个:InnoSetupKnowledgeBase—HOWTO:Install.MSIfiles.我假设该技术可用于嵌套的InnoSetup安装程序。但我有几个关于细节的问题:如果第一个应用程序被卸载,第二个应用程序也被卸载,我该如何做到这一点?这样做(自动卸载第二个应用程序)是否明智,还是应该让用户手动执行?