信息发布软件,b2b软件,广告发布软件

标题: Delph面对API还是很有前生今生的缘份的 [打印本页]

作者: 群发软件    时间: 2017-8-5 02:14
标题: Delph面对API还是很有前生今生的缘份的
本帖最后由 群发软件 于 2017-8-5 02:18 编辑

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,lpCaptionChar,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函数以更好地为自己程序服务。

[delphi] view plain copy









排名        关键词        相关链接        搜索指数
1        骑车忘锁欠两千万        简介 新闻 视频        1276561
2        建军90周年阅兵        简介 新闻 视频        913795
庆祝中国人民解放军建军90周年阅兵,2017年7月30日上午9时在朱日和训练基地举行,是庆祝中国人民解放军建军的重要纪念活动之一。这是习主席首次在野战化条件下亲临沙场检阅部队,是我军首次以庆祝建军节为主题举行的专项阅兵,也是我军革命性整体性改革重塑后的全新亮相。中共中央总书记、国家主席、中央军委主席习近平检阅部队并发表重要讲话。接受检阅的共有12000名官兵、600余台(套)装备,将组成1个护旗..
3        嫁外国小伙离婚难        简介 新闻 视频        909252
4        战狼2被偷票房        简介 新闻 视频        820487
5        老赖整容成少女        简介 新闻 视频        724240
6        失联女生盗窃被捕        简介 新闻 视频        705812
7        卖拍黄瓜被罚1万        简介 新闻 视频        606388
8        王心凌私密照外泄        简介 新闻 视频        566577
9        90后阅兵走红        简介 新闻 视频        562809
10        马伊琍谈陈道明        简介 新闻 视频        519617
11        日网友看中国阅兵        简介 新闻 视频        447173
12        萨摩耶吃穷交警队        简介 新闻 视频        431643
13        肯尼亚现人骨遗骸        简介 新闻 视频        431637
14        飞机涂成哈士奇        简介 新闻 视频        407946
15        邹市明痛失金腰带        简介 新闻 视频        399141
16        刘德华宣布复出        简介 新闻 视频        380362
17        失踪女教师告别信        简介 新闻 视频        355183
18        刘亦菲重返校园        简介 新闻 视频        343976
19        徐峥被曝打女记者        简介 新闻 视频        326430
20        林更新直播唱歌        简介 新闻 视频        319412
21        贴吧女团出道        简介 新闻 视频        307809
22        进藏遇事故丧生        简介 新闻 视频        305713
23        建军90周年大会        简介 新闻 视频        299371
24        温碧霞走出婚变        简介 新闻 视频        297781
25        轿车被撞成麻花        简介 新闻 视频        291994
26        飞机迫降撞死两人        简介 新闻 视频        283634
27        以房养老骗局        简介 新闻 视频        271750
28        游客悬崖自拍跌落        简介 新闻 视频        259173
29        李昌钰谈章莹颖案        简介 新闻 视频        258588
30        杨焕宁严重违纪        简介 新闻 视频        248354
31        孙杨退出1500米        简介 新闻 视频        234822
32        印度制造溃不成军        简介 新闻 视频        229438
33        菲佣雇佣乱象        简介 新闻 视频        224187
34        美团被曝拖欠工资        简介 新闻 视频        203242
35        广西查38只玳瑁        简介 新闻 视频        201169
36        上海现双胞胎豪车        简介 新闻 视频        199825
37        习近平签署通令        简介 新闻 视频        198058
38        日本间谍无罪获释        简介 新闻 视频        197789
39        美轰炸机飞过朝鲜        简介 新闻 视频        195066
40        葛宇路被记过处分        简介 新闻 视频        188379
41        孙耀威迎娶女友        简介 新闻 视频        186167
42        快递员偷苹果手机        简介 新闻 视频        174575
43        麦当劳曝食品丑闻        简介 新闻 视频        162127
44        19人身亡案宣判        简介 新闻 视频        160543
45        台艺人赞叹解放军        简介 新闻 视频        160241
46        中国房奴报告出炉        简介 新闻 视频        156998
47        徐玉玉案被告上诉        简介 新闻 视频        156069
48        美女14年未剪发        简介 新闻 视频        153274
49        大妈闯灯雷语不断        简介 新闻 视频        151939
50        转款2万6选错人        简介 新闻 视频        148114


作者: jskf10    时间: 2017-8-6 18:19
我是来刷分的,嘿嘿
作者: ufo50200    时间: 2017-8-6 18:44
非常好,很耐心,很专业的团队,希望下次继续合作!
作者: xbaobeit    时间: 2017-8-7 17:06
专业,内部分工明确,值得客户信赖,希望你们越做越好,为理想奋斗不息。
作者: mmgg520    时间: 2017-8-9 01:19
有耐心,下次还会找这家,都给我改了好几次了,就是时间比较长,等不起啊。总体还是很满意
作者: xoxo110    时间: 2017-8-15 13:23
啊服务和售后没得说耐心解决问题
作者: pxynmi018    时间: 2017-8-18 05:38
不知该说些什么。。。。。。就是谢谢
作者: feiyang2006    时间: 2017-8-18 15:48
的设计,刚刚开始还有些顾虑,其实不必担心,做的很不错,值得推荐。
作者: ekmci    时间: 2017-8-18 18:55
服务好教程很全面我想要的都有下次还来你家买
作者: 89260881    时间: 2017-8-18 22:26
学习了,不错,讲的太有道理了
作者: 武器    时间: 2017-8-18 23:15
快,水平也不错。好评
作者: niyaoz1    时间: 2017-8-20 15:23
网站制作的很好,企业团队效率就是高!
作者: yiyi2014    时间: 2017-8-21 04:17
7和07号客服态度好,耐心回答解决我这个草鸟很多幼稚的问题,真的是百问不烦,而且技术也是很过硬,价格也不贵,说实在的这家店,整体各个方面都没的说,特别谢谢077和07号
作者: xubaojin    时间: 2017-8-23 14:09
态度不错。
作者: linshihu    时间: 2017-8-24 02:33
很给力,好评!!!
作者: 大宝罗滴滴    时间: 2017-8-24 15:20
下次有需要在来
作者: 西充    时间: 2017-8-24 23:00
序员哥哥好有耐心!点赞!
作者: cjagl520    时间: 2017-8-26 22:28
及时做出评价,系统默认好评!
作者: ekmci    时间: 2017-8-31 05:28
的卖家,大力支持哦,客服们辛苦了,真心给你赞
作者: pxynmi018    时间: 2017-9-3 00:26
力很强大,必须好评!!!!
作者: asz111    时间: 2017-9-3 17:02
,技术牛B,态度好,选这家没错!




欢迎光临 信息发布软件,b2b软件,广告发布软件 (http://www.postbbs.com/) Powered by Discuz! X3.2