`
金笛子
  • 浏览: 35804 次
社区版块
存档分类
最新评论

Delphi中调用API函数经验点滴

 
阅读更多
在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能够成功关闭计算机电源。

    (转自bbs.sendsms.cn)
分享到:
评论

相关推荐

    Delphi__调用API函数实现数据发送.rar

    在Delphi中,调用API函数是常见的技术,用于扩展Delphi程序的功能。本教程将深入探讨如何在Delphi中调用API函数来实现数据发送。 首先,理解API函数的基本结构是至关重要的。API函数通常在Windows头文件中定义,如`...

    怎样在DELPHI中使用API函数...

    本文将详细介绍如何在Delphi中调用Windows API函数,并通过一个具体的示例来展示整个过程。 #### 一、理解Windows API Windows API(应用程序编程接口)是一组由微软提供的库函数集合,它为开发者提供了访问操作...

    delphi中API函数使用技巧

    在Delphi编程环境中,API(应用程序接口)函数的使用是扩展功能、访问操作系统服务和实现低级别操作的关键技术。API函数通常是由操作系统如Windows提供的,它们允许开发者直接与系统进行交互,实现一些Delphi自带库...

    delphi API函数动态调用视频

    关于delphi动态调用API函数的视频

    Delphi动态调用API辅助工具_delphi_

    标题“Delphi动态调用API辅助工具”暗示了这个工具是为了解决在Delphi项目中使用API时遇到的问题,可能包括自动化的API函数生成、参数管理、错误处理等方面。这种工具通常能够简化API调用的过程,提高开发效率,减少...

    Delphi 动态调用BPL函数

    在Delphi编程环境中,动态调用BPL(Binary Package Library)函数是一种常见的技术,它可以显著提高应用程序的灵活性和模块化程度。BPL是Delphi的一种组件包机制,它允许我们将代码封装到独立的动态链接库中,然后在...

    Delphi10.3 中通过JNI调用 Java 函数

    在Delphi中调用Java函数,可以利用JNI提供的API来实现这一目标,从而扩展Delphi程序的功能。 首先,我们需要了解JNI的基本工作原理。JNI的核心是Java虚拟机(JVM)和本地方法接口。当Java代码调用本地方法时,JVM会...

    api函数使用手册讲解如何在Visual Basic和Delphi中对其调用。

    本篇讲解将聚焦于如何在Visual Basic和Delphi这两种流行的编程环境中调用API函数。 在Visual Basic中调用API函数: 1. **声明API函数**:首先,你需要在你的代码中声明API函数。这通常通过`Declare`语句完成,指定...

    利用DELPHI调用API直接对串口读写

    在本篇文章中,我们将深入探讨如何利用Delphi调用API直接对串口进行读写操作。 首先,我们需要了解API(应用程序接口)的本质。API是一组预定义的函数、常量、类型和结构,允许开发者访问操作系统或库的功能。在...

    javascript调用delphi中的函数

    标题“javascript调用delphi中的函数”涉及到的技术领域是跨语言通信,具体是JavaScript与Delphi之间的交互。这种交互通常发生在Web应用程序与桌面应用程序的集成,或者在浏览器扩展和本地资源之间。以下是对这一...

    DELPHI中使用API函数详解.docx

    在DELPHI中,调用API函数非常直接,因为DELPHI本身是基于Pascal语言的,而Pascal语法与C语言家族(包括C++)的API调用方式非常接近。DELPHI的标准库中包含了一个名为`windows.pas`的单元,这个单元定义了大量的...

    Delphi动态调用BPL函数XE7

    除了上述方法,还可以使用TLibLoader组件,它是Delphi中的一个控件,简化了动态加载和调用BPL中函数的过程。TLibLoader自动处理加载、查找函数和卸载BPL的细节,使得代码更简洁,如下所示: ```delphi uses ...

    DELPHI 7 调用 JAVA 接口

    6. **传递参数和接收结果**:在Delphi中,你可以使用上述函数,传入Java接口名、方法名以及参数,调用Java方法并获取返回值。 ```delphi const ClassName = 'com/example/MyJavaClass'; MethodName = '...

    DELPHI的API函数.pdf

    API函数的调用在DELPHI中相对简单,因为DELPHI已经为大部分常见的Win32API函数提供了对应的单元。 1. **API函数的分类** - **基本管理**: 包括内存分配、任务管理、资源加载和文件操作,如kernel32单元中的函数。 ...

    DELPHI调用有道 API 翻译(xml方式)

    在本文中,我们将深入探讨如何在Delphi环境中调用有道API进行翻译,利用XML方式来处理和解析返回的结果。这个过程涉及到网络通信、API调用以及XML数据的解析等关键知识点。 首先,你需要在有道API官网注册并申请API...

    webapi调用的方法

    WebAPI调用是软件开发中常见的一种技术,主要用于应用程序与服务器端进行数据交互。在这个场景中,我们讨论的是一个名为"opensinaapi1.0beta3"的压缩包,它包含了一个用于测试新浪API的代码库。新浪API是新浪提供的...

    DELPHI中使用API函数详解.pdf

    除了上述函数,DELPHI中的API调用还包括但不限于文件操作、内存管理、网络通信、图形绘制等多个方面。熟练掌握API函数,可以极大地扩展DELPHI应用程序的功能,使其能够处理更复杂的任务。同时,由于API函数是Windows...

    delphi 下API函数写串口

    delphi 利用API函数写串口。 //建立串口句柄 CommHandle := CreateFile(PChar(ComboBox1.Text),GENERIC_WRITE or GENERIC_READ, 0,nil,OPEN_EXISTING,FILE_FLAG_OVERLAPPED or FILE_ATTRIBUTE_NORMAL,0); if ...

    Delphi源码演示如何在BASM中调用Windows API..rar

    本压缩包“Delphi源码演示如何在BASM中调用Windows API”提供了关于如何在Delphi程序中直接调用Windows API函数的示例代码,这对于那些需要进行底层系统编程或者实现特定功能的开发者来说非常有用。 在Windows操作...

Global site tag (gtag.js) - Google Analytics