我有一個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