Delphi中調用API函數經驗點滴

在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)安全

相關文章
相關標籤/搜索