0

在 DelphiXe 中,我通过项目主创建控制面板的新小程序,更改图标、名称等。为了激活反应,我编写 Showmessage ('Test');在 *.cpl 中编译、接收 dll、重命名。在此文件开头的 win.explorer 中会显示该消息。在 WinXp 中,我将此文件插入 c:\windows\system32,打开控制面板 Windows,我看到了小程序,并且在其启动时测试消息突出。我在Win7x64(或2008r2)上做的太多,但在小程序的控制面板中我没有观察到,重启问题并没有解决。试图在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.
4

1 回答 1

0

在 XP 上,您可以将.cpl文件放入系统文件夹并完成它:

如何注册 DLL 控制面板项

从 Windows XP 开始,新的控制面板项 DLL 应安装在 Program Files 文件夹下的相关应用程序文件夹中。存储在 System32 目录中,扩展名为 .cpl 的项目不需要注册;它们会自动显示在控制面板中。所有其他使用 CPlApplet 的控制面板项目必须以以下两种方式之一注册:

  • 如果控制面板项对所有用户都可用,请通过将 REG_EXPAND_SZ 值添加到 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Control Panel\Cpls 子项,以设置为 DLL 路径,从而在每台计算机上注册路径.

  • 如果要在每个用户的基础上使用控制面板项,请使用 HKEY_CURRENT_USER 作为根键而不是 HKEY_LOCAL_MACHINE。

但是,在 Vista 及更高版本上,您的.cpl小程序需要在注册表中注册。将其放在系统文件夹中可能还不够。

为控制面板开发

控制面板小程序
的类型 控制面板小程序分为三种类型:

  • 命令对象——运行注册表中指定的命令的小程序

  • Shell 文件夹——小程序在控制面板中打开。外壳文件夹小程序的示例是字体文件夹、管理工具、个性化、系统、用户帐户和程序

  • CPL——实现该CplApplet功能的小程序

命令对象是最容易实现的。

添加和注册您自己的小程序和任务
在 Windows Vista 中,将您自己的小程序添加到控制面板更容易。软件开发人员现在可以轻松地将自己的小程序和任务添加到控制面板。

在以前的 Windows 版本中,您可以使用 Windows 注册表和 CplApplet 函数将小程序添加到控制面板。操作系统使用注册表来枚举包含小程序的模块。调用每个模块的 CplApplet 函数来显示小程序、其图标和描述,然后调用小程序。这个过程比使用命令对象更复杂,因为小程序必须实现 CplApplet 接口。尽管 Windows Vista 仍支持此过程,但鼓励使用命令对象,因为它更易于实现。

现在,在 Windows Vista 中,您只需编写一个可执行文件 (.exe),将其注册为命令对象,小程序就会出现在控制面板中。例如,您可以为您的小程序编写一个可执行文件 MySystemApplet.exe,并将该小程序添加到控制面板,只需将 MySystemApplet.exe 注册为 shell 命令对象,而不是使用 CplApplet 接口的实现来繁琐地修改二进制文件。

于 2015-08-07T01:03:06.003 回答