【发布时间】:2011-09-29 05:06:26
【问题描述】:
在 win32 (mingw) 上编译我的程序时遇到了一个有趣的问题。 我有 2 个相同的项目,都是在 C::B 中创建的。编译一个时,它运行得很好,不需要提升权限,但另一个提示用户“允许程序对计算机等进行更改”对话框。我希望该应用程序不提示用户,因为它不需要提升权限。
这是在 Win7 x64 下。
这可能是 Code::Blocks 问题还是编译器问题?
谢谢!
【问题讨论】:
-
程序是否真的相同(例如,md5sum 是否在两者上返回相同的值)?可能是您在其中一个中嵌入了清单,而不是在另一个中。
-
不,两个文件的 MD5 不同:/ 但是我看不出如何嵌入清单;它们都是作为新项目启动的,并且代码从第一个项目复制并粘贴到第二个项目。
-
解决了! Windows 7 将名称中带有“更新”的任何内容标记为需要管理员权限的内容。我没想到会这样。但是将文件重命名为随机字符串似乎比有用的描述性名称更有效.....
-
@Dylan:我认为您应该发布您的解决方案作为答案并接受它。
-
Windows 7(或 Vista)使用某些方法来尝试猜测程序是否需要提升(作为与旧程序兼容的一种方式)。在这些方法中,如果程序名称或版本资源包含诸如“setup”、“install”或“update”之类的词,它似乎会被捕获。这是一个先前的问题,它回答了如何在不重命名的情况下解决它:stackoverflow.com/questions/533939/…
标签: c++ mingw uac codeblocks