【问题标题】:Control panel Win7 applets控制面板 Win7 小程序
【发布时间】:2023-03-24 12:27:01
【问题描述】:

在 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.

【问题讨论】:

  • 顾,你少了几个步骤(关于注册)。尝试阅读 MSDN 文档msdn.microsoft.com/en-us/library/bb757044.aspx
  • 谢谢!不知道,现在小程序也有注册需求。将标记您对答案的评论质量,但我不知道要在这里制作。

标签: delphi windows-7 control-panel


【解决方案1】:

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

How to Register DLL Control Panel Items

从 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 小程序需要在注册表中注册。将其拖放到系统文件夹中可能还不够。

Developing for the Control Panel

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

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

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

  • CPL——实现CplApplet函数的小程序

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 2011-01-10
    • 2013-07-20
    • 1970-01-01
    • 2019-05-06
    相关资源
    最近更新 更多