【发布时间】:2011-01-19 18:15:37
【问题描述】:
我在 Vista 中遇到了一个很好的 bdeadmin.exe 问题。首先,让我们排除可预测的响应:
“您不应要求提升您的应用程序。”
这个可以。生活吧。
“您需要嵌入清单文件。”
它已经编译好了,已经有很多年了,创建它的公司无意再做一次,它是从 Merge Module(MSM 文件)安装的。
“BDE 已过时,您应该使用 dbExpress”
150 万行代码。 '纳夫说。
“在 EXE 旁边放置一个清单文件。”
试过了,什么都没做。作为一项测试,同一个清单文件能够使其他几个 EXE 文件需要提升,但不是我想要的。里面的东西阻止了外部清单被读取。
“创建快捷方式并设置 SLDF_RUNAS_USER。”
不能这样,它是一个控制面板小程序。
唯一有效的方法是在其“属性”窗口的“兼容性”选项卡下设置“以管理员身份运行此程序”。我不应该告诉用户这样做。对生意不利。我需要让安装程序执行此操作。 MSM 文件使用静态路径。
【问题讨论】:
-
接受的答案具有要读取的注册表位置以获取所需的值。
-
关于 Win 8 的 ~:我注意到在我的 Win 7 上它有一个 #(井号),后跟空格,然后是 RUNASADMIN,所以实际上很可能是 Win 8 上的 ~(tilda) . 并且(谁知道是哪个新符号)在 Windows 10 上...
-
无需重新编译(或重新链接)即可嵌入清单。它是一种常规资源,您可以像添加任何其他资源一样添加它。除非二进制文件经过数字签名并且无法更改,否则这将是直接的解决方案。将其重新打包到一个新的合并模块中也应该是可行的。
标签: windows properties compatibility admin runas