在DelphiXe中,我通过项目主人创建了控制面板的新小程序,我更改了一个图标,名称等。 为了激活反应,我写了Showmessage('Test');编译,接收DLL,重命名为* .cpl。在此文件开头的win.explorer中,将显示该消息。 在WinXp中,我将此文件插入c:\ windows \ system32,打开控制面板Windows,我看到小程序,并在其开始时测试消息突出。 我在Win7x64(或2008r2)上做得太多了,但在applet的控制面板中我没有注意到,重启问题并没有解决。 试图复制c:\ windows \ syswow64中的文件,也没有结果。 如何强制小程序将出现在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.
答案 0 :(得分:0)
在XP上,您可以将.cpl
文件放入系统文件夹并完成它:
How to Register DLL Control Panel Items
从Windows XP开始,新的控制面板项目DLL应安装在Program Files文件夹下的相关应用程序文件夹中。 不需要注册存储在System32目录中且扩展名为.cpl的项目;它们会自动显示在控制面板中。使用CPlApplet的所有其他控制面板项必须以下列两种方式之一注册:
如果控制面板项目对所有用户可用,请通过向HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Control Panel \ Cpls子项添加REG_EXPAND_SZ值,在每台计算机上注册路径,设置为DLL路径。
如果要以每个用户为基础使用“控制面板”项,请使用HKEY_CURRENT_USER作为根密钥而不是HKEY_LOCAL_MACHINE。
但是,在Vista及更高版本中,您的.cpl
小程序需要在注册表中注册。将其删除到系统文件夹中可能还不够。
Developing for the Control Panel
控制面板小程序的类型
控制面板小程序有三种类型:
命令对象 - 运行注册表中指定的命令的小程序
在“控制面板”中打开Shell文件夹小程序。 shell文件夹小程序的示例包括字体文件夹,管理工具,个性化,系统,用户帐户和程序
实施
CplApplet
功能的CPLs小程序命令对象是最容易实现的。
添加和注册您自己的小程序和任务
在Windows Vista中,将自己的小程序添加到控制面板更容易。软件开发人员现在可以轻松地将自己的小程序和任务添加到控制面板。在以前版本的Windows中,您可以使用Windows注册表和CplApplet函数将小程序添加到控制面板。操作系统使用Registry枚举包含applet的模块。调用每个模块的CplApplet函数以显示applet,其图标和描述,然后调用applet。此过程比使用命令对象更复杂,因为applet必须实现CplApplet接口。尽管Windows Vista仍支持此过程,但鼓励使用命令对象,因为它更容易实现。
现在,在Windows Vista中,您只需编写可执行文件(.exe),将其注册为命令对象,然后小程序就会显示在控制面板中。例如,您可以编写可执行文件, MySystemApplet.exe,用于您的applet,只需将MySystemApplet.exe注册为shell命令对象,而不是通过CplApplet接口的实现来繁琐地修改二进制文件,从而将applet添加到控制面板。