2011-05-10 81 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添加到控制面板。