gpt4 book ai didi

winapi - 在 Windows 7 上安装对兼容性 PCA 进行故障排除 - "This program might not have installed correctly”

转载 作者:行者123 更新时间:2023-12-04 06:24:02 33 4
gpt4 key购买 nike

好吧,我使用的是 Visual C++ 2010 Express 和 ResEdit
用于我的 MIDI 音序器的 SETUP 应用程序。

Win32 API,没有 MFC,一些自定义窗口和控件类等等。

现在我有了 Windows 7,我该死的 SETUP 程序坏了。

Windows 给我提示“这个应用程序安装正确吗??”东西。
这意味着我的安装程序有问题。

我想弄清楚那可能是什么......

我见过这两个 SO 线程:

"This program might not have installed correctly"

"This program might not have installed correctly" message in Windows 7 RC

这让我去了这些地方:

http://msdn.microsoft.com/en-us/library/dd371711(VS.85).aspx

http://msdn.microsoft.com/en-us/library/bb756937.aspx

http://msdn.microsoft.com/en-us/library/aa905330.aspx#wvduac_topic3

http://blogs.msdn.com/b/cjacks/archive/2009/06/18/pca-changes-for-windows-7-how-to-tell-us-you-are-not-an-installer-take-2-because-we-changed-the-rules-on-you.aspx

http://community.flexerasoftware.com/archive/index.php?t-189007.html

只有我使用的注册表项是标准的卸载点和
文件类型的关联。

SETUP 在 program files\pianocheater 目录中写入一个 dat.cfg 文件
指向所有应用程序数据的位置。 (只是一个带有路径的文本文件)
(还有一个 etc.cfg 用于该数据目录中的临时目录以供使用。)

所以我只是从 programfiles\pianocheater post SETUP 中读取。

有人能想到为什么 Windows 不喜欢安装吗?
源代码在 http://shazware.com/_etc/SETUP_PIANOCHEATER.cpp
它使用我的窗口库,在精神上类似于 mfc 的控制类。
我也可以发送有用的部分。

对于设置应用程序来说还不错。
对于 win32 人/女孩来说应该是相当容易理解的。

我可以用一些他的...:/

哦,是的,我应该指出 Go() 是入口点而不是 main()。
DBG() 只是执行 OutputDebugString() 并且似乎都运行得很好。
TStr 只是一个大字符 [MAX_PATH] (我不做 unicode)

诀窍可能是我使用的是 64 位的 win7,但这是一个 32 位的应用程序。
不过,我很确定我正确地将注册表用于 assoc 和卸载点。

那么我应该做 list xml 的事情吗?
或者有更正确的做事方式吗?

非常感谢,

...史蒂夫

最佳答案

首先,检查该消息是否为误报。您看到的消息旨在使用启发式方法(这可能是错误的!)来确定安装程序是否由于 Windows Vista/7 兼容性问题而失败。如果您的安装程序实际上与 Windows 7/Vista 兼容,那么您需要做的就是添加 list declaring itself compatible .您还需要添加 requestedExecutionLevel entry到您的 list 以及请求提升。

当然,如果您的安装程序实际上失败了,那么您应该首先修复它。

最后,如果错误是由于启动器可执行文件提前退出或类似原因而出现的,请考虑通过向启动器添加适当的 list 条目来抑制安装程序检测(您可以使用 requestedExecutionLevelasInvoker,如果启动器不需要管理访问权限; requestedExecutionLevel list 条目的存在应该是 suppress installer detection )。请注意,您应该确保使用 ShellExecute调用您的主安装程序进程,而不是 CreateProcess ,或者 UAC 可能不会提升子进程。

关于winapi - 在 Windows 7 上安装对兼容性 PCA 进行故障排除 - "This program might not have installed correctly”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6231717/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com