利用API函数开发DELPHI程序-Delphi-优质IT资源分享社区

admin
管理员
管理员
  • UID1
  • 粉丝33
  • 关注4
  • 发帖数581
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:285回复:0

利用API函数开发DELPHI程序

楼主#
更多 发布于:2016-06-07 22:58

 
Windows的API函数是
运用程序开发的有力辅助东西,对它们的
恰当
运用,可大大
加强和改进
运用程序与体系打交道的
威力,使自个的程序 真实
存在底层操作
功能 。作为RAD东西的
基础代表,BORLANDDELPHI
当然
自身也已供给了大 量强有力的函数和进程,但在某些场合、请求下,
运用API函数将使你的程序进一步得到改 善,并可拓展
规划,简化程序代码 。
在DELPHI中
引证API函数,和
运用DELPHI
自身的函 数、进程
几乎没有差异 。在DELPHI目录下有一个WINDOWS.PAS文件,
凡是在其间声明过的API 函数,都可在编程时直接
引证而
无须另加
注明 。只不过要
留心,
规范API函数都是以C或C++为
规范进行数据
结构界说的,而DELPHI
运用的是OBJECTPASCAL言语,
因此在
引证时应特别注 意参数和函数
自身的数据类型 。如一个API函数若为布尔值,则在DELPHI中就应以TRUE、FALSE 而不能用0、非0来对返回值进行揣度 。
下面以三个小比如来
注明API函数在DELPHI中的
运用 。
怎样添加SEO效果的3个做法安卓刷机教程(HTC通用)
简略装置与卸载Windows7的办法拍摄菜鸟常犯的5个过错及怎样防止
一、当地化
信息框
想让自个的
信息框显现“OK”、“Cancel”仍是“断定”、“
撤销”?假设想使程序彻底当地化,那么仍是扔掉MessageDlg和ShowMessage吧——都怪DELPHI 没有
。用MessageBox这个API函数照样简单 。
运用语法为:
天价设备都白瞎 被疏忽的音箱摆位绝招win8消费者预览版桌面水印怎样去除
窍门来自于实习 用好手中相机拍人像大片旅拍小绝招 教你拍出7种不一样感受的水景
MessageBox(HWND:hWND,lpMessage:
PChar,lpCaption:PChar,uType:Cardinal);
各参数中,第一个为
信息框所属的窗口句柄,第二 个为要显现的
信息,第三个为
信息框的
标题,第四个为
信息框的类型,函数返回值为整型数 。
为使
信息框有所归属,第一个参数设为现在窗口, 猎取其句柄的
进程是
运用另一个API函数:GetActiveWindows(),且不需任何参数 。
例1)Messagebox示例:
1.主要构件及特点的设置:
form1:caption:messagebox示例
bordericons:biMaximize和biHelp设为false
panel1:caption:文字
有些Alignment:taLeftJustify
panel2:caption:图象
有些Alignment:taLeftJustify
button1'button12:caption分别为:断定、断定
撤销、
断定帮忙
撤销、是不是、重试
撤销、停止重试
撤销、
信息、
提问、体系图标、
劝告、
逗留、组合
形式
bitbtn1:kind:bkClose
如图一所示:
2.事情
注明:(详见源程序,下仅举两例)
{文字
有些以button2click()为例}
procedureTForm1.Button2Click(Sender:TObject);
begin
casemessagebox(getactivewindow(),
显现断定、
撤销框,比如,
okcancel)
ofidok:messagebox(getactivewindow(),
您按下的是“断定”按钮,
结果,mb_ok);
idcancel:messagebox(getactivewindow(),
您按下的是“
撤销”按钮,
结果,mb_ok);
end;
end;
{图象
有些以button8click()为例}
procedureTForm1.Button8Click(Sender:TObject);
begin
messagebox(getactivewindow(),显现
劝告图标,比如,
mb_iconwarning)
end;
二、改进Windows9x的体系登录的安全性:
Win9x的“消费者登录”窗口
可谓来者不拒,暗码不 比照样
能够“登堂入室”,体系为消费者保存的自个设置等信息也就毫无保密性可言,经过查 看Profiles目录,可轻松地将其仿制或删去 。
当然Win95、Win98的
运用对象是自个消费者,但 在某些场合下,仍是让登录窗口起点效果的好 。
要使体系登录
存在安全性,对不合法
运用者真实能 拒之门外,
无妨用两个API函数来完成此
方针 。
例二)体系登录
检查
1.主要构件及特点设置:
form1:caption:CheckUser
height、width:设为最小值
2.事情
注明:
//界说变量
private
size:cardinal;
name:pchar;
entry:boolean;{Privatedeclarations}
procedureTCheckUser.FormShow(Sender:TObject);
begin
size:=64;
name:=StrAlloc(64);
{
检查消费者名,揣度是按了“
撤销”按钮仍是键入了新消费者名}
ifGetUsername(name,size)
thenifname=’wj’//‘wj’为小编机器的登录消费者名
{在此,若赞同的合法
运用者不止一个,还可运用联系运算指定
一个以上的消费者进入 。
如:if(name=’computer1’)or(name=’computer2’)
}
thenentry:=true;
close;
end;
procedureTCheckUser.FormClose
(Sender:TObject;varAction:TCloseAction);
begin
ifnotentry
thenExitWindowsEx(EWX_REBOOT,32);
//若消费者名不对,则再一次发动Windows
end;
procedureTCheckUser.FormCreate(Sender:TObject);
begin
entry:=false;//设定初始值
end;
编译
完毕后,生成EXE文件,
然后
翻开注册表——
运用Regedit,找到HKEY_LOCAL_MACHINESOFTWAREMicrWindowsCurrentVersionRUN
行,添加键值名(如:CheckUser)及键值(EXE文件地点的
彻底途径) 。如图所示:
好了,再一次发动一次,没有准确的暗码还能进入吗 ?
三.没有“媒体播映器”的声响播映
现在做了一个小程序,想在“关于”窗口外加一段 声响
注明,但小小的“关于”FORM放上一个长长的、Visible特点需为False的MediaPlayer构 件
实在别扭 。东查西找之下,仍是靠API函数SNDPLAYSOUND()处理了疑问——然后
开脱了MediaPlayer 的“
禁闭” 。例三)
运用API函数操作声响文件的播映:(
有些代码)
procedureTaboutBox.FormShow(Sender:TObject);
begin
//播映现在目录下的welcome.wav文件
sndplaysound(‘welcome.wav’,snd_async)
end;
procedureTAboutBox.FormClick(Sender:TObject);
begin
//
逗留播映
sndplaysound(‘’,snd_async);
end;
别忘了,在USES子句中参加mmsystem单元 。假设只 需要播映声响,那么一条API函数就能完成
功能的还用得着MediaPlayer来大动干戈吗?
总归,
运用DELPHI的“聪明的程序员”们应当
足够
发挥DELPHI调用API函数简单方便的优势,好好运用API函数以非常好地为自个程序效劳 。
Windows的API函数是
运用程序开发的有力辅助东西,对它们的
恰当
运用,可大大
加强和改进
运用程序与体系打交道的
威力,使自个的程序 真实
存在底层操作
功能 。作为RAD东西的
基础代表,BORLANDDELPHI
当然
自身也已供给了大 量强有力的函数和进程,但在某些场合、请求下,
运用API函数将使你的程序进一步得到改 善,并可拓展
规划,简化程序代码 。
在DELPHI中
引证API函数,和
运用DELPHI
自身的函 数、进程
几乎没有差异 。在DELPHI目录下有一个WINDOWS.PAS文件,
凡是在其间声明过的API 函数,都可在编程时直接
引证而
无须另加
注明 。只不过要
留心,
规范API函数都是以C或C++为
规范进行数据
结构界说的,而DELPHI
运用的是OBJECTPASCAL言语,
因此在
引证时应特别注 意参数和函数
自身的数据类型 。如一个API函数若为布尔值,则在DELPHI中就应以TRUE、FALSE 而不能用0、非0来对返回值进行揣度 。
下面以三个小比如来
注明API函数在DELPHI中的
运用 。
一、当地化
信息框
想让自个的
信息框显现“OK”、“Cancel”仍是“断定”、“
撤销”?假设想使程序彻底当地化,那么仍是扔掉MessageDlg和ShowMessage吧——都怪DELPHI 没有
。用MessageBox这个API函数照样简单 。
运用语法为:
MessageBox(HWND:hWND,lpMessage:
PChar,lpCaption:PChar,uType:Cardinal);
各参数中,第一个为
信息框所属的窗口句柄,第二 个为要显现的
信息,第三个为
信息框的
标题,第四个为
信息框的类型,函数返回值为整型数 。
为使
信息框有所归属,第一个参数设为现在窗口, 猎取其句柄的
进程是
运用另一个API函数:GetActiveWindows(),且不需任何参数 。
例1)Messagebox示例:
1.主要构件及特点的设置:
form1:caption:messagebox示例
bordericons:biMaximize和biHelp设为false
panel1:caption:文字
有些Alignment:taLeftJustify
panel2:caption:图象
有些Alignment:taLeftJustify
button1'button12:caption分别为:断定、断定
撤销、
断定帮忙
撤销、是不是、重试
撤销、停止重试
撤销、
信息、
提问、体系图标、
劝告、
逗留、组合
形式
bitbtn1:kind:bkClose
如图一所示:
2.事情
注明:(详见源程序,下仅举两例)
{文字
有些以button2click()为例}
procedureTForm1.Button2Click(Sender:TObject);
begin
casemessagebox(getactivewindow(),
显现断定、
撤销框,比如,
okcancel)
ofidok:messagebox(getactivewindow(),
您按下的是“断定”按钮,
结果,mb_ok);
idcancel:messagebox(getactivewindow(),
您按下的是“
撤销”按钮,
结果,mb_ok);
end;
end;
{图象
有些以button8click()为例}
procedureTForm1.Button8Click(Sender:TObject);
begin
messagebox(getactivewindow(),显现
劝告图标,比如,
mb_iconwarning)
end;
二、改进Windows9x的体系登录的安全性:
Win9x的“消费者登录”窗口
可谓来者不拒,暗码不 比照样
能够“登堂入室”,体系为消费者保存的自个设置等信息也就毫无保密性可言,经过查 看Profiles目录,可轻松地将其仿制或删去 。
当然Win95、Win98的
运用对象是自个消费者,但 在某些场合下,仍是让登录窗口起点效果的好 。
要使体系登录
存在安全性,对不合法
运用者真实能 拒之门外,
无妨用两个API函数来完成此
方针 。
例二)体系登录
检查
1.主要构件及特点设置:
form1:caption:CheckUser
height、width:设为最小值
2.事情
注明:
//界说变量
private
size:cardinal;
name:pchar;
entry:boolean;{Privatedeclarations}
procedureTCheckUser.FormShow(Sender:TObject);
begin
size:=64;
name:=StrAlloc(64);
{
检查消费者名,揣度是按了“
撤销”按钮仍是键入了新消费者名}
ifGetUsername(name,size)
thenifname=’wj’//‘wj’为小编机器的登录消费者名
{在此,若赞同的合法
运用者不止一个,还可运用联系运算指定
一个以上的消费者进入 。
如:if(name=’computer1’)or(name=’computer2’)
}
thenentry:=true;
close;
end;
procedureTCheckUser.FormClose
(Sender:TObject;varAction:TCloseAction);
begin
ifnotentry
thenExitWindowsEx(EWX_REBOOT,32);
//若消费者名不对,则再一次发动Windows
end;
procedureTCheckUser.FormCreate(Sender:TObject);
begin
entry:=false;//设定初始值
end;
编译
完毕后,生成EXE文件,
然后
翻开注册表——
运用Regedit,找到HKEY_LOCAL_MACHINESOFTWAREMicrWindowsCurrentVersionRUN
行,添加键值名(如:CheckUser)及键值(EXE文件地点的
彻底途径) 。如图所示:
好了,再一次发动一次,没有准确的暗码还能进入吗 ?
三.没有“媒体播映器”的声响播映
现在做了一个小程序,想在“关于”窗口外加一段 声响
注明,但小小的“关于”FORM放上一个长长的、Visible特点需为False的MediaPlayer构 件
实在别扭 。东查西找之下,仍是靠API函数SNDPLAYSOUND()处理了疑问——然后
开脱了MediaPlayer 的“
禁闭” 。例三)
运用API函数操作声响文件的播映:(
有些代码)
procedureTaboutBox.FormShow(Sender:TObject);
begin
//播映现在目录下的welcome.wav文件
sndplaysound(‘welcome.wav’,snd_async)
end;
procedureTAboutBox.FormClick(Sender:TObject);
begin
//
逗留播映
sndplaysound(‘’,snd_async);
end;
别忘了,在USES子句中参加mmsystem单元 。假设只 需要播映声响,那么一条API函数就能完成
功能的还用得着MediaPlayer来大动干戈吗?
总归,
运用DELPHI的“聪明的程序员”们应当
足够
发挥DELPHI调用API函数简单方便的优势,好好运用API函数以非常好地为自个程序效劳 。











优质IT资源分享社区为你提供此文。
本站有大量优质Delphi教程视频,资料等资源,包含Delphi基础教程,高级进阶教程等等,教程视频资源涵盖传智播客,极客学院,达内,北大青鸟,猎豹网校等等IT职业培训机构的培训教学视频,价值巨大。欢迎点击下方链接查看。
Delphi教程视频


优质IT资源分享社区(www.itziyuan.top)
一个免费,自由,开放,共享,平等,互助的优质IT资源分享网站。
专注免费分享各大IT培训机构最新培训教学视频,为你的IT学习助力!

!!!回帖受限制请看点击这里!!!
!!!资源失效请在此版块发帖说明!!!

[PS:按 CTRL+D收藏本站网址~]

——“优质IT资源分享社区”管理员专用签名~

本版相似帖子

游客