我在 Vista 中使用 bdeadmin.exe 时遇到问题。首先,让我们排除可预测的响应:
“你不应该要求提升你的申请。”
这个可以。这就是生活。
“您需要嵌入一个清单文件。”
它已经编译完毕,已经有很多年历史了,创建它的公司无意再次这样做,并且它是从合并模块(MSM 文件)安装的。
“BDE 已经过时了,你应该使用 dbExpress”
五十万行代码。 ”纳夫说道。
“将清单文件拖放到 EXE 旁边。”
试过了,什么也没做。作为一项测试,同一个清单文件能够使其他几个 EXE 文件需要提升,但不是我想要的那个。那里的某些东西阻止了外部清单被读取。
“创建快捷方式并设置 SLDF_RUNAS_USER。”
不能这样做,它是一个控制面板小程序。
唯一有效的是在其“属性”窗口的“兼容性”选项卡下设置“以管理员身份运行此程序”。我不应该告诉用户这样做。对生意不利。我需要让安装程序执行此操作。 MSM 文件使用静态路径。
您可以通过设置一个简单的注册表项以编程方式设置“以管理员身份运行此程序”标志(您可以在 EXE 属性的“兼容性”选项卡中找到该选项)。您需要在这些键之一下创建一个字符串值 (REG_SZ)(如果您希望设置分别针对每个用户或每台计算机):
HKEY_CURRENT_USER\Software\Microsoft\Windows
NT\CurrentVersion\AppCompatFlags\Layers
or
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\AppCompatFlags\Layers
值的名称必须是可执行文件的完整路径(如果路径包含空格,请勿用引号引起来)并且值的数据必须包含字符串RUNASADMIN
.
对于样品:
reg.exe Add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\Program Files\MyApp\Test.exe" /d "PUT__VALUE__HERE"
兼容模式
WIN95 Windows 95
WIN98 Windows 98
WIN4SP5 Windows NT 4.0 SP5
WIN2000 Windows 2000
WINXPSP2 Windows XP SP2
WINXPSP3 Windows XP SP3
VISTART™ 远景
VISTASP1 维斯塔 SP1
VISTASP2 Vista SP2
WIN7RTM Windows 7
WINSRV03SP1 Windows Server 2003 SP1
WINSRV08SP1 Windows Server 2008 SP1
权限级别
RUNASADMIN 以管理员身份运行程序
REG 添加“HKLM\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\AppCompatFlags\Layers" /v
“C:\temp\compatmodel\iconsext.exe”/t REG_SZ /d“WINXPSP3 RUNASADMIN”
/F
参考:http://www.verboon.info/2011/03/running-an-application-as-administrator-or-in-compatibility-mode/ http://www.verboon.info/2011/03/running-an-application-as-administrator-or-in-compatibility-mode/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)