如何让Delphi控制面板applet成为非''trgacy'?

时间:2009-10-23 10:49:48

标签: delphi controlpanel

我目前使用Delphi 7编写的Delphi .CPL需要更新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。

2 个答案:

答案 0 :(得分:2)

我相信你需要使用COM提升。有一篇精彩的博客帖子似乎已被删除,但该帖子背后的源代码仍为available VCL组件website

答案 1 :(得分:1)

我想我已经找到了一个更好的答案。 这样的动物,如“非遗留”控制面板小程序,在MSDN here中有描述。 “现在,在Windows Vista中,您可以通过为applet创建可执行文件并注册它来将自己的applet添加到控制面板,而不是经历创建.cpl文件的麻烦。”