怎樣在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

相關文章
相關標籤/搜索