2011-05-10 39 views
0

在DelphiXe中,我通過項目主人創建了控制面板的新小程序,我更改了圖標,名稱等。 爲了激活反應,我編寫了Showmessage('Test');編譯,接收dll,在* .cpl中重命名。在這個文件開始的win.explorer中出現消息。 在WinXp中,我在c:\ windows \ system32中插入這個文件,打開控制面板的Windows,我看到小程序,並在其開始處顯示測試消息。 我在Win7x64(或2008r2)上做的太多了,但是在applet的控制面板中我沒有注意到,重新啓動一個問題並沒有解決。 試圖複製c:\ windows \ syswow64中的文件,也沒有結果。 如何強制applet出現在Win7下面板?控制面板Win7小程序

代碼:

library Project1; 

uses 
CtlPanel, 
AppletModule1 in 'AppletModule1.pas' {AppletModule1AppletModule: TAppletModule}; 

exports CPlApplet; 

{$R *.RES} 

{$E cpl} 

begin 
Application.Initialize; 
Application.CreateForm(TAppletModule1AppletModule, AppletModule1AppletModule); 
Application.Run; 
end. 

////////////// and Unit module 

unit AppletModule1; 

interface 

uses 
Windows, Messages, SysUtils, Classes, CtlPanel, Dialogs; 

type 
TAppletModule1AppletModule = class(TAppletModule) 
    procedure AppletModuleActivate(Sender: TObject; Data: Integer); 
private 
{ private declarations } 
protected 
{ protected declarations } 
public 
{ public declarations } 
end; 

var 
AppletModule1AppletModule: TAppletModule1AppletModule; 

implementation 

{$R *.DFM} 

procedure TAppletModule1AppletModule.AppletModuleActivate(Sender: TObject; 
Data: Integer); 
begin 
Showmessage('Test'); 
end; 

end. 
+2

顧,你錯過了幾個步驟(關於註冊)。嘗試閱讀MSDN文檔http://msdn.microsoft.com/en-us/library/bb757044.aspx – RRUZ 2011-05-10 17:18:01

+0

謝謝!不知道,現在小程序也註冊需求。會標記你的評論質量的答案,但我不知道它在這裏做。 – 2011-05-11 10:48:49

回答

0

在XP系統中,您可以在.cpl文件拖放到系統文件夾,並用它做:

How to Register DLL Control Panel Items

由於Windows XP中的,新的控制面板項目DLL應安裝在Program Files文件夾下的相關應用程序文件夾中。 存儲在擴展名爲.cpl的System32目錄中的項目不需要註冊;它們會自動顯示在控制面板中。使用的CPlApplet其他所有的控制面板項目必須在以下兩種方式之一進行註冊:

  • 如果控制面板項是提供給所有用戶,通過增加註冊在每臺計算機上的路徑REG_EXPAND_SZ值到HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Control Panel \ Cpls子項,設置爲DLL路徑。

  • 如果要在每個用戶的基礎上使用控制面板項,請使用HKEY_CURRENT_USER作爲根鍵而不是HKEY_LOCAL_MACHINE。

然而,在Vista和更高版本,您.cpl小程序需要在註冊表中註冊。將其放入系統文件夾中可能不夠。

Developing for the Control Panel

控制面板小程序的類型
有三種類型的控制面板小程序:

  • 命令對象,小程序運行在註冊表中指定的命令

  • 在控件中打開Shell文件夾 - 小程序面板。外殼文件夾的小程序的例子是字體文件夾,管理工具,個性化,系統,用戶帳戶和程序

  • 的CPL-小程序實現CplApplet功能

Command對象是最容易實現的。

添加和註冊自己的小程序和任務
添加自己的小程序,控制面板在Windows Vista更容易。軟件開發人員現在可以輕鬆地將自己的小程序和任務添加到控制面板。

在以前的Windows版本中,通過使用Windows註冊表和CplApplet函數將小程序添加到控制面板中。操作系統使用註冊表枚舉包含小程序的模塊。調用每個模塊的CplApplet函數以顯示小程序,其圖標和描述,然後調用小程序。這個過程比使用命令對象更復雜,因爲小程序必須實現CplApplet接口。雖然此過程在Windows Vista中仍受支持,但鼓勵使用命令對象,因爲它更容易實現。

現在,在Windows Vista中,您只需編寫一個可執行文件(.exe),將其註冊爲命令對象,並且該小程序將出現在控制面板中。例如,您可以爲applet編寫可執行文件MySystemApplet.exe,並通過將MySystemApplet.exe註冊爲shell命令對象,而不是使用CplApplet接口實現枯燥地修改二進制文件來將該applet添加到控制面板。