我有一个Delphi .CPL,目前用Delphi 7编写,需要更新HKLM中的设置(供服务应用程序使用),它必须支持Vista,Win7和Server 2008.目前可以通过添加RUNASADMIN值到AppCompatFlags/Layers,使用CPL文件作为值名称。这会导致Windows为“传统控制面板小程序”请求提升。如何使德尔福控制面板小程序不是'非礼'?
我需要找到一种方法来构建Delphi 2010中的CPL,而不会显示为“遗留”,并且如果可能的话,不需要注册表设置或提升。将通常的清单资源添加到引用Common-Controls v6和“requireAdministrator”的DLL/CPL中并不能解决问题:不要求提升并且HKLM访问失败。通过导航到SYSWOW64中的文件,右键单击并以“以管理员身份”运行,可以使原始文件和Delphi 2010 .CPL正确运行(提升后)。
后来:我找到了一个解释为什么你不能在论坛张贴here这样提升DLL。
谢谢,我认为解决方案可以工作,如果我决定这样做,代码将会很有用。但放弃使用CPL的想法可能会更简单,只需使用可升级的常规EXE进行服务管理即可。 – frogb 2009-10-23 18:12:34
无论使用哪种方式,您都可以使用上述COM提升方法来提升自己“及时”以应用您的HKLM注册表更改。 – skamradt 2009-10-23 20:38:51