首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制面板Win7小程序

控制面板Win7小程序
EN

Stack Overflow用户
提问于 2011-05-10 14:15:18
回答 1查看 1.2K关注 0票数 0

在DelphiXe中,我通过项目的主程序创建了控制面板的新小程序,我更改了一个图标、名称等等。我编写了Showmessage (‘Test ');编译、接收dll、在*.cpl中重命名。在该文件开始时的win.explorer中,将显示消息。在WinXp中,我将这个文件插入到c:\windows\system32 32中,打开控制面板Windows,我看到了applet,在它开始时,测试消息非常突出。我在Win7x64 (或2008r2)上做的太多了,但是在applet的控制面板中我没有观察到,重新启动一个问题并不能解决问题。尝试复制c:\windows\syswow64 64中的文件,也没有结果。如何强制小程序出现在Win7下的面板中?

代码:

代码语言:javascript
复制
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.
EN

回答 1

Stack Overflow用户

发布于 2015-08-07 01:03:06

在XP上,您可以将.cpl文件放到系统文件夹中,并完成以下操作:

如何注册DLL控件面板项

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

  • 如果控制面板项对所有用户都可用,请在每台计算机的基础上注册路径,方法是向HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Control面板\Cpls子项添加一个REG_EXPAND_SZ值,设置为DLL路径。
  • 如果控制面板项在每个用户的基础上可用,请使用HKEY_CURRENT_USER作为根键而不是HKEY_LOCAL_MACHINE。

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

为控制面板开发

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

  • 命令对象-运行注册表中指定的命令的applet。
  • Shell文件夹-在控制面板中打开小程序。shell文件夹小程序的例子有:字体文件夹、管理工具、个性化、系统、用户帐户和程序
  • 实现CplApplet函数的CPLs applet

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

添加和注册您自己的小程序和任务

在Windows中,向控制面板添加自己的applet更容易。软件开发人员现在可以轻松地将自己的applet和任务添加到Control中。

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

现在,在Windows中,您只需编写一个可执行文件(.exe),将其注册为一个命令对象,然后applet就会出现在控制面板中。例如,您可以为您的applet编写一个可执行文件MySystemApplet.exe,并通过简单地将MySystemApplet.exe注册为一个shell命令对象,而不是用CplApplet接口的实现来乏味地修改二进制文件,从而将applet添加到控制面板中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5951440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档