如何让我的安装程序应用程序在Windows中正常运行?

4 delphi installer

我在Delphi中做了一个简单的安装程序应用程序,没什么特别的.基本上我将文件包含到Exe中,然后将它们提取到用户指定的路径.

我偶然发现了一个问题,我注意到这适用于任何Windows可执行文件,无论是否是安装程序都无关紧要.

如果命名了Exe,或者在文件名,"安装","构建","安装"以及其他文件中包含以下单词,那么每当运行和关闭应用程序时,Windows都会弹出"产品兼容性助手"对话框,说应用程序可能没有正确安装.

这是一个问题,因为即使我的安装程序中的文件实际已经提取,并且在我看来安装程序已完成其工作,Windows正在抱怨它.

我唯一的想法是,Windows必须在执行时检查应用程序的文件名,并在这种情况下将其识别为安装程序.Windows必须在系统上设置一个标志或某个东西,然后我的安装程序必须更新此标志以说安装是否成功?

从IDE调试时,Windows不会抱怨这一点,所以它不能与代码相关,它必须是操作系统 - 这只发生在从Windows启动应用程序而不是Delphi时.

您可以轻松地尝试此操作,创建应用程序或将其重命名为Setup.exe,运行它然后关闭它 - 等待几秒钟,将显示产品兼容性助手对话框.

我不知道从哪里开始调查如何停止此对话框,或者设置可能告诉Windows安装程序已正确完成.

感谢您的想法和解决方案.

Dav*_*nan 8

如果我没记错,当安装应用程序不包含应用程序清单时会发生这种情况.引入UAC时,MS为安装程序引入了启发式检测,并显示了UAC提升对话框.启发式检查setup.exe,install.exe等名称.简单的解决方案是包含应用程序清单.如果是安装程序,您可能想要使用该requireAdministrator设置.

该功能称为安装程序检测,将在此处讨论.

对于它的价值,我总是会使用像InnoSetup这样的专用安装工具来构建安装程序.