在Delphi中调用Windows API 函数十分方便,只需在单元的uses段加入Windows 单元名便可(对于由Delphi自动建立的单元,该项工做已经完成)。单元Windows.pas 已经由Delphi编写并直接提供开发者引用。笔者在开发Windows 应用时对于几个特别的API函数总结了一些经验供你们参考。如下开发经验均在Windows 9x中适用。
1、关闭系统
对于某些特殊的应用程序,可能须要进行关闭系统的操做,能够调用函数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可以成功关闭计算机电源。缓存
(转自bbs.sendsms.cn)安全