2009-11-04 | #1 (permalink) |
高级会员
注册日期: 2009-07-09
住址: 亦庄经济开发区2号院大族广场1502
帖子: 531
|
怎样在DELPHI中使用API函数
实际上,在DELPHI中调用WIN32 API函数与在C或C++中调用WIN32 API函数没有大的区别。DELPHI中将C或C++中引用 的WINDOWS.H头文件改写为WINDOWS.PAS单元,使WINDOWS API函数的定义符合PASCAL语法。而其他的头文件在DELPHI中也都有相应的.PAS单元一一对应,所以在DELPHI中调用API函数时,只须将相应的API函数单元加入到USES语句的单元之中,便可直接调用相应的函数了。
下面我们来看一个简单的例子,程序的作用是改变桌面墙纸: unit Unit1; interface {Windows.PAS是DELPHI提供的标准单元,我们要调用API函数,需要引用这个单元} uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm); Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var filename1:string; begin filename1:='c:\windows\mywallpaper.bmp'; {调用API函数SystemParametersInfo来设置桌面墙纸的图片文件为'c:\windows\mywallpaper.bmp'} SystemParametersInfo(SPI_SETDESKWALLPAPER, 0,pchar(filename1), SPIF_UPDATEINIFILE); end; end. 其中SystemParametersInfo函数的参数的意义如下表: 参数: 意义 uAction Longint,指定要设置的参数。参考uAction常数表 uParam Longint,参考uAction常数表 lpvParam 不定,按引用调用的Integer、Longint和数据结构。 fuWinIni 参数规定了在设置系统参数的时候,是否应更新用户设置参数 常数SPIF_UPDATEINIFILE表示更新 下面是本例的uAction常数,和使用它的方法: 参数 意义和使用方法 SPI_SETDESKWALLPAPER 设置桌面背景墙纸,用法为: SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, 图片路径, 1) 好了在DELPHI中调用API函数就是这样简单,我们需要知道的只是API函数的意义和参数列表,然后把它用到程序中就可以了。需要提醒的是C的数据类型可能会与DELPHI的数据类型有些不同,而调用API函数时必须保证类型一致才行。
__________________
地址:北京亦庄经济技术开发区荣华南路10号院5号楼705 电话:010-82356575/76/77转6070 联系人:苏秋英 手机微信同号:13811870548 QQ: 1170923055 |