怎样在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语句的单元之中,即可直接调用相应的函数了。windows

 

  下面咱们来看一个简单的例子,程序的做用是改变桌面墙纸:数据结构

 

  unitUnit1;函数

  interfacespa

  {Windows.PAS是DELPHI提供的标准单元,咱们要调用API函数,须要引用这个单元}orm

  usesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls;图片

  typestring

    TForm1 =class(TForm);it

    Button1:TButton;io

    procedureButton1Click(Sender: TObject);class

    private{ Private declarations }

    public {Public declarations }

  end;

  var Form1:TForm1;        

  implementation{$R *.DFM}

  procedureTForm1.Button1Click(Sender: TObject);

  varfilename1:string;

  begin

    filename1:='c:\windows\mywallpaper.bmp';

    {调用API函数SystemParametersInfo来设置桌面墙纸的图片文件为'c:\windows\mywallpaper.bmp'}

    SystemParametersInfo(SPI_SETDESKWALLPAPER,0,pchar(filename1), SPIF_UPDATEINIFILE);

  end;

  end.

 

  其中SystemParametersInfo函数的参数的意义以下表:

 

参数: 意义

uActionLongint,指定要设置的参数。参考uAction常数表

uParamLongint,参考uAction常数表

lpvParam不定,按引用调用的Integer、Longint和数据结构。

fuWinIni参数规定了在设置系统参数的时候,是否应更新用户设置参数

常数SPIF_UPDATEINIFILE表示更新

 

  下面是本例的uAction常数,和使用它的方法:

 

参数 意义和使用方法

SPI_SETDESKWALLPAPER设置桌面背景墙纸,用法为:

SystemParametersInfo(SPI_SETDESKWALLPAPER,0, 图片路径, 1)

 

  好了在DELPHI中调用API函数就是这样简单,咱们须要知道的只是API函数的意义和参数列表,而后把它用到程序中就能够了。须要提醒的是C的数据类型可能会与DELPHI的数据类型有些不一样,而调用API函数时必须保证类型一致才行。

转自bbs.sendsms.cn

相关文章
相关标签/搜索