Delphi调用API函数实例

原创 2007年09月27日 17:06:00
什么是API函数
Win32 API即为Windows应用程序编程接口(Application Programming Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数。

早期的PC机内存非常少,Windows的设计者们不仅要把大量的代码和资源放入,而且还要留出足够的空间让应用程序运行,解决这种矛盾的方法就是通过让多个程序共享常用的代码来实现,这些被共享的代码就是今天所说的API函数。

随着软件技术的不断发展,在Windows平台上出现了很多优秀的可视化编程环境,程序员可以采用“所见即所得”的编程方式来开发具有精美用户界面和功能的应用程序。这些可视化编程环境操作简便、界面友好,比如:Visual C++、Delphi和Visual Basic等。在这些工具中提供了大量的控件,实现了API的部分功能,加速了Windows应用程序的开发。但程序员要想开发出更灵活、更实用、更具效率的应用程序,必然要涉及到直接使用API函数。

API函数的分类

分类
 单元
 功能及库文件

基本管理
 windows
 操作系统的基本功能,提供分配内存、
管理任务、装入资源、文件操作等

shell例程
 shellapi
 win32提供的外壳例程,
如加载其它程序、管理登录等

mci接口
 mmsystem
 多媒体mci编程接口(winmm.dll)

注册表管理
 regstr
 win32系统中注册表的管理

消息传送接口
 mapi
 微软消息传送系统的编程接口(mapi32.dll)

winsocket
 winsock
 winsocket网络编程接口(wsock32.dll)

标准对话框
 comdlg
 win32的标准对话框,如打开文件、
打印等(comdlg32.dll)

activex
 activex
 对象连接与嵌入ole函数

win32外壳扩展
 shlobj
 针对系统外壳的编程接口,
对资源管理器的某些功能或对象进行扩展



API函数按不同功能被存放在不同的动态链接库文件中,这些动态链接库文件一般是以DLL为扩展名。在上表中,列举出了编程时较常用的几大类API函数及其主要功能、库文件名和对应的Delphi单元。

Delphi调用API函数实例
Delphi中定义了相应单元,给出了所有Win32 API函数的接口。Delphi调用API函数非常简单,甚至不需要声明外部引用,只需将使用的单元名放在Uses子句中就可以,其它的工作全部由系统定义的单元完成。下面,我们给出几个Delphi中使用API函数的实例,帮助大家理解。

1、在“文档”菜单中添加新项及清空项目
在Windows的开始菜单中有一个文档菜单,保存了最近处理过的文档信息,如何增加新项或将其清空呢?我们可以利用API函数SHAddtoRecentDocs()来实现,它定义在Shlobj单元中,使用前要先在Uses中加以说明。下面为处理方法:

uses shlobj;
procedure TForm1.Button1Click(SenderTObject);
begin
SHAddtoRecentDocs(SHARD_PATHPchar('c:/mydir/aaa.txt')); //增加新的一项
end;
procedure TForm1.Button2Click(SenderTObject);
begin
SHAddtoRecentDocs(SHARD_PATHnil); //清空文档菜单
end;

2、使窗口标题栏闪烁
在Windows中,常用窗口标题栏的闪烁来提醒用户,向你的程序中加入这一功能一定很有意思。API函数Flash Windows( )可以使一个特定的窗口闪动一次,如果将其放在计时器中调用,标题栏闪烁就很容易实现。

procedure TForm1.Button1Click(SenderTObject);
begin
Timer1.Interval:=500//计时器的间隔时间,每500毫秒触发一次
Timer1.Enabled:=Not Timer1.Enabled//切换计时器的激活或停止状态
end;
procedure TForm1.Timer1Timer(SenderTObject);
begin
FlashWindow(Form1.Handle,TRUE); //闪烁标题栏
end;

FlashWindows()有两个参数:第一个参数指明窗口的句柄;第二个参数指定窗口是闪动还是恢复始状态。这个函数定义在Windows单元中,是Delphi的缺省单元,故不必再用Uses子句进行说明。

3、在程序中播放WAV声音文件
Windows启动时那声嘹亮的号角声是否让你感到振奋。OK!让我们在自己的程序中来实现它。仅仅播放一个WAV声音文件,当然不需要劳驾MediaPlayer构件,API函数SndPlaySound()就可以很好地完成这一工作。它定义在MMSystem单元中,有两个参数:第一个指明WAV文件的路径、文件名;第二个指明播放方式。实例如下:

uses MMSystem;
procedure TForm1.FormCreate(SenderTObject);
begin
SndPlaySound('c:/windows/media/tada.wav',SND_ASYNC)
end;

API函数数量众多,在平时的学习使用中不断积累,加深理解,编程水平一定会有一个大的提高。
 

Delphi 常用API 函数

Delphi 常用API 函数 AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小 AnyPopup 判断屏幕上是否存在任何弹出式窗口 Arrang...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi API

1. API之网络函数  WNetAddConnection 创建同一个网络资源的永久性连接  WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnectio...

Delphi中调用API函数经验点滴

在Delphi中调用Windows API 函数十分方便,只需在单元的uses段加入Windows 单元名即可(对于由Delphi自动创建的单元,该项工作已经完成)。单元Windows.pas 已经由...
  • JDDXM
  • JDDXM
  • 2015年12月21日 17:21
  • 1051

Delphi中调用API函数经验点滴(二)

二、弹出模式化对话框   在Delphi中,提供模式化对话框的方法很多,现对几种比较常用的方法做如下比较:   1) 直接调用Windows API 函数MessageBox   ...
  • JDDXM
  • JDDXM
  • 2015年12月23日 17:42
  • 197

delphi调用windows api

在Delphi中调用Windows API 函数十分方便,只需在单元的uses段加入Windows 单元名即可(对于由Delphi自动创建的单元,该项工作已经完成)。单元Windows.pas 已经由...

Delphi版本的淘宝接口(TopAPI)开发

博文地址: http://blog.csdn.net/delphiteacher/article/details/8168741 Delphi版本淘宝接口控件下载地址(支持D7,D2007,D20...

Delphi函数详解:全局函数,内部函数,类的成员函数,类的静态方法

1. Delphi中的全局函数 //要点: 需要给其他单元调用, 必须在 interface 声明, 但必须在 uses 区后面 unit Unit1; interface uses   W...

delphi 接口

学习 delphi 接口 一切都是纸老虎!!! 第四章          接口  前不久,有位搞软件的朋友给我出了个谜语。谜面是“相亲”,让我猜一软件术语。我大约想了一分钟,猜 出谜底是“面向...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi调用API函数实例
举报原因:
原因补充:

(最多只允许输入30个字)