在Visual Basic 程 序 中, 可 以 使 用Windows API 函 數 來 重 新 啟 動 計 算 機 系 統, 文 本 介 紹 如 何 退 出Windows 95 并 關 閉 計 算 機 系 統。
關 閉 計 算 機 系 統
---- 可 以 使 用Windows API 的ExitWindowsEx 函 數 來 從Visual Basic 程 序 中 重 新 啟 動 計 算 機 系 統。 要 使 用 該 函 數, 需 要 將 如 下 聲 明 語 句 包 含 在 窗 體 的 通 常 聲 明 部 分 中:
---- Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
---- ExitWindowsEx 函 數 需 要2 個 參 數, 可 以 使 用 一 個 或 多 個 下 面 的 標 識 的 組 合 來 告 訴ExitWindowsEx 函 數 希 望 進 行 關 機 過 程。
---- EWX_FORCE 所 有 的 進 程 都 被 強 制 終 止。
---- EWX_LOGOFF 所 有 的 進 程 被 強 制 終 止, 并 且 用 戶 退 出 登 錄(logged off)。
---- EWX_POWEROFF 計 算 機 系 統 被 關 機, 并 且 如 果 支 持 節 電 特 性, 則 計 算 機 被 物 理 關 機。
---- EWX_REBOOT 計 算 機 系 統 被 關 機 并 重 新 啟 動。
---- EWX_SHUTDOWN 計 算 機 被 物 理 地 安 全 地 關 機。
---- 下 面 的 樣 例 程 序 中 使 用 了 上 面 的 三 個 標 識 的 組 合。 該 標 識 組 合(EWX_LOGOFF,EWX_FORCE, 以 及EWX_REBOOT) 告 訴Windows 95 退 出 所 有 正 在 執 行 的 進 程, 使 用 戶 退 出 網 絡 登 錄, 使 計 算 機 系 統 處 于 準 備 狀 態 以 供 用 戶 關 機。
樣 例 程 序
---- 該 樣 例 程 序 顯 示 了 如 何 關 閉 計 算 機 系 統。
---- 1. 在Visual Basic 中 開 始 一 個 新 的 項 目, 采 用 缺 省 的 方 法 建 立Form1。
---- 2. 將 如 下 常 量 和 聲 明 語 句 添 加 到Form1 的 通 常 聲 明 部 分 中( 注 意 該 聲 明 語 句 需 要 書 寫 在 一 行 內):
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long Const EWX_LOGOFF = 0 Const EWX_SHUTDOWN = 1 Const EWX_REBOOT = 2 Const EWX_FORCE = 4 Const EWX_POWEROFF = 8 Const EWX_RESET = EWX_LOGOFF + EWX_FORCE + EWX_REBOOT
---- 3. 在Form1 上 添 加 一 個 命 令 按 鈕 控 件, 采 用 缺 省 的 方 法 建 立Comand1。 將 它 的Caption 屬 性 設 置 為“ 重 新 啟 動 計 算 機”。
---- 4. 將 如 下 代 碼 添 加 到Command1 的 單 擊 事 件 中:
Private Sub Command1_Click() Dim X As Long X = ExitWindowsEx(EWX_RESET, dwReserved) End Sub
---- 按 下F5 來 運 行 上 述 樣 例 程 序, 單 擊 命 令 按 鈕, 即 可 重 新 啟 動 計 算 機 系 統。
|