网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
Delphi中调用API函数学习经验
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式

在Delphi中调用Windows API 函数十分方便,只需在单元的uses段加入Windows 单元名即可(对于由Delphi自动创建的单元,该项工作已经完成)。单元Windows.pas 已经由Delphi编写并直接提供开发者引用。笔者在开发Windows 应用时对于几个特别的API 函数总结了一些经验供大家参考。以下开发经验均在Windows 9x中适用。

一、关闭系统

对于某些特殊的应用程序,可能需要进行关闭系统的操作,可以调用函数ExitWindows 或者ExitWindowsEx 来实现。

在Delphi中函数ExitWindows 的语法如下:

function ExitWindows(dwReserved: Cardinal; Code: Word): LongBool;

如果调用该函数成功,则返回True,否则返回False ;成功调用该函数将执行“关闭所有程序并以其他身份登录(Windows 95)”或“注销(Windows 98)”操作。其中的参数dwReserved和参数Code都必须是0 。

例如,要实现注销操作,只需要在适当的位置写入如下语句:

ExitWindows(0, 0);

执行关闭计算机或重新启动计算机的操作,可以通过调用函数ExitWindowsEx 来实现。

在Delphi中函数ExitWindowsEx 的语法如下:

function ExitWindowsEx(uFlags, dwReserved: Cardinal): LongBool;

如果调用该函数成功,则返回True,否则返回False ;其中的参数uFlags的不同将决定执行不同的关闭操作:

EWX_FORCE 强制终止所有的进程。如果设置了此参数,Windows 将不会向正在运行的应用程序发送消息WM_QUERYENDSESSION和WM_ENDSESSION ,这将可能导致数据丢失。因此,除非特别紧急或特别的情况(如应用程序死锁或系统资源濒临崩溃等),不要使用该参数。

EWX_LOGOFF 关闭所有与当前调用函数ExitWindowsEx 相关的进程并注销用户。

EWX_POWEROFF关闭系统并关闭电源。其中,关闭电源要求系统应支持power-off 特性。

EWX_REBOOT 关闭系统并重新启动计算机

EWX_SHUTDOWN在安全关闭电源后关闭系统。该操作将所有的缓存刷新到磁盘并停止所有正在运行的进程。

参数dwReserved被函数所忽略,可以是任意值。

例如,要强制注销,可以通过如下语句实现:

ExitWindowsEx(EWX_FORCE, 0);

再如,要重新启动计算机,可以通过如下语句实现:

ExitWindowsEx(EWX_REBOOT, 0);

需要提醒大家注意的是,在很多情况下,只有参数EWX_SHUTDOWN能够成功关闭计算机电源。

二、弹出模式化对话框

在Delphi中,提供模式化对话框的方法很多,现对几种比较常用的方法做如下比较:

1) 直接调用Windows API 函数MessageBox

该方法一般情况下使用正常,而且根据不同的操作系统将显示相应的中文或英文按钮标题。而在笔者曾经开发的系统中,偶尔会出现该函数没有锁定Handle所指的窗口的情况。通过观察发现,当入口参数的窗口句柄是Application.MainForm的窗口句柄时,没有出现类似情况。因此,建议大家甚用。

2) 调用Delphi提供的函数MessageDlg

该方法的不足之处是,对话框的按钮标题是英文。

3) 调用Delphi提供的过程ShowMessage

该方法默认将应用程序的标题作为对话框的标题,并且仅仅是信息提示框,不太灵活。

4) 调用函数Application.MessageBox

该方法是笔者强力推荐使用的方法。该方法的使用效果与Windows API 函数MessageBox完全相同,并且不会出现有时没有锁定当前活动窗口的情况。

例如:

Aplication.MessageBox(Handle, ''这是一条警告信息。'', ''警告'', MB_OK + MB_ICONEXCLAMATION);

三、防止多次载入应用程序实例

某些应用程序需要禁止用户载入多次实例。比如,控制面板中的应用程序,不管用户打开多少次,同一应用程序只有一个实例,而且每一次试图重复打开都会自动激活已经存在的实例。

Windows API 提供了函数FindWindow,可以是应用程序在启动时检查自己是否已经存在。

该函数在Delphi中的语法是:

function FindWi

  • 下一篇资讯: 使用HOOK随心监视Windows
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号