利用Dephi5编写控制面板程序

鐜媉鍏坃鐢熲湐

鐜媉鍏坃鐢熲湐

2016-01-29 14:09

利用Dephi5编写控制面板程序,利用Dephi5编写控制面板程序
 
在Windows中提供了一个控制面板窗口,一个控制面板窗口就象Windows的控制中心。在窗口中有诸如 “系统”、“多媒体”图标,通过双击这些不同的图标,就可以打开不同的控制面板程序查看系统状况和对系统进行设置了。

  如何在控制面板中添加自己的控制面板程序呢?首先来了解以下控制面板程序的原理。一个控制面板程序就是一个动态连接库(DLL)。在库文件中必须建立一个名称为CPLApplet的输出回调函数,在函数中加入对Windows调用的响应代码,编辑成动态连接库文件。库文件将库文件的扩展名改为CPL,然后将文件拷贝到 WindowsSystem子目录下,系统在启动时会自动搜索扩展名为Cpl的文件。搜索到文件之后,系统会装入文件并调用CPLApplet函数,这时函数中的代码就开始工作,执行弹出系统设置窗口等操作。

  是不是很复杂,你必须对于系统调用DLL的工作原理和回调函数有比较深刻的了解才能编写控制面板程序,而且必须无法在编程软件的集成窗口中调试,而必须先编译好以后拷贝到 WindowsSystem 目录下观察运行效果,然后再对源程序除错,再编译。

  幸好在Delphi5中提供了方便建立控制面板程序的方式。在Delphi5的菜单中选File | New ,在New Items窗口中会看到有一个 Control Panel Application 选项,点击这个选项,然后再按OK键,就可以建立一个基本的控制面板程序。在这个程序的工程文件包中包含两个文件,一个是工程文件 Project1.dpr。按Ctrl+F12打开View Units窗口打开Project1,可以看到代码的第一行是library Project1; ,另外在代码中还有一行:exports CPlApplet; ,这说明程序已经自动建立了输出回调函数。
  
  另一个文件是控制面板程序控制文件(姑且这么称呼它)Unit1.pas。这个程序代码中建立了一个TAppletModule类,这个类就是控制面板程序控制类。同时程序还会建立一个调试、控制窗口AppletModule1。在窗口左边的列表框中有一项 AppletModule1,右键点击该项,在弹出菜单中选Install Control Panel Applet项编译并安装控制面板程序。如果安装成功,再右键点击AppletModule1,在弹出菜单中选Launch Control Panel运行控制面板。怎么样?在控制面板中是不是增加了一个 AppletModule1项?

  当然,现在这个程序还很简单,没有漂亮的图标,双击它也没有反应,在下面我就要介绍对这个程序的扩展。

  首先要让它响应鼠标的双击。首先按Shift+F12键,在View Form窗口中选择AppletModule1打开调试、控制窗口。在窗口左边的Object Inspector中点击Events页面,在Events列表中的第一项就是OnActive事件,你也许猜到了,对,这个事件就是控制面板程序被激活(也就是你双击控制面板中的程序图标时发生的事件)时产生的事件。

下面来编写代码响应事件。在Delphi菜单中选 File | New,在New Items窗口中选Form项添加一个新的窗口。将文件保存为Unit2.pas,然后在Unit1.pas中添加Uses Unit2; (该句要添加在implementation后面),在Events列表中双击OnActive
事件,在事件中添加如下代码:
  procedure TAppletModule1.AppletModuleActivate(Sender: TObject;
    Data: Integer);
   begin
     with TForm2.Create(Application) do begin
      if ShowModal = mrOK then
      Free;
    end;
  end;
  最后记住将Project1中的Application.CreateForm(TForm2, Form2); 行给删除掉。

  接下来设置程序图标,点击AppletModule1的Object Inspector窗口,点击Properties页面,选AppletIcon项,就可以为控制面板程序添加图标了。改变Caption项的值就可以为程序设置不同的标题。

  图标和程序标题设置好以后,再重复上面的Install Control Panel Applet编译并安装程序,然后再选Launch Control Panel运行。双击新建立的程序图标,看看,建立一个控制面板程序就是这么简单!

  当然,这只是一个最简单的控制面板程序,它只是响应OnActive事件并弹出一个窗口,在OnActive事件中的Data是一个比较重要的参数,它是控制面板程序调用程序传递给程序的参数,利用这个参数可以对不同的调用弹出不同的窗口,例如你要建立一个时间/日期调整控制程序,你可以做以下代码:
  procedure TAppletModule1.AppletModuleActivate(Sender: TObject;
    Data: Integer);
  begin
    with TForm2.Create(Application) do begin file://以下是伪代码:
      Case Data of
 
  1:DoChangeTime;  file://显示改变系统时间窗口
  2:DoChangeDate;  file://显示改变系统日期窗口
      end;
    end;
  end;

  这样当外部程序以不同的参数调用程序时,程序能弹出不同的窗口,例如 RunDll32

展开更多 50%)
分享

猜你喜欢

利用Dephi5编写控制面板程序

Delphi
利用Dephi5编写控制面板程序

用BCB开发控制面板程序

编程语言 网络编程
用BCB开发控制面板程序

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

控制面板在哪,控制面板打不开怎么办

电脑入门
控制面板在哪,控制面板打不开怎么办

控制面板禁用方法

电脑入门
控制面板禁用方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

控制面板在哪里打开

电脑网络
控制面板在哪里打开

NVIDIA控制面板怎么设置

电脑入门
NVIDIA控制面板怎么设置

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Delphi3.0中的函数调用模式

Delphi3.0中的函数调用模式

让Flash按钮张嘴出出声

让Flash按钮张嘴出出声
下拉加载更多内容 ↓