答案:
在VB应用程序中控制Win95的启动 |
---- 在 用Visual Basic 编 写Win95 应 用 程 序 时, 有 时 可 能 希 望 由 程 序 来 控 制 计 算 机 的 启 动 功 能, 比 如 当 应 用 程 序 对 系 统 注 册 表 作 了 修 改 后 需 要 重 新 启 动Win95。 ---- 那 么, 如 何 在 应 用 程 序 中 控 制Win95 的 启 动 呢 ? 由 于Visual Basic 自 身 没 有 提 供 相 关 的 命 令 和 函 数, 我 们 只 好 求 助 于Windows API 函 数ExitWindowsEx, 调 用 该 函 数, 我 们 可 以 完 成 重 新 启 动、 关 机、 强 制 关 闭 所 有 应 用 程 序 或 重 新 登 录 等 操 作, 下 面 是 该 函 数 的 函 数 声 明: Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long ---- ExitWindowsEx 函 数 有 两 个 参 数, 其 中 第 二 个 为 保 留 参 数, 第 一 个 参 数uFlags 用 来 决 定 调 用 函 数 时 的 具 体 动 作, 可 能 的 取 值 和 含 义 见 下 表: U flags的值含义 0 重新登录 1 关闭计算机 2 重新启动 4 强制关闭所有应用程序 ---- 下 面 以 一 个 小 程 序 为 例, 介 绍 如 何 在 程 序 中 控 制Win95 的 启 动: ---- 新 建 一 个 工 程, 添 加 一 个 普 通 窗 体Form1, 在 窗 体 上 放 置 一 个Frame 控 件Frame1、 一 个 命 令 按 钮 控 件Command1 和 一 个 包 含4 个 元 素 的 选 项 按 钮 控 件 数 组Option1。 再 给 工 程 添 加 一 个 代 码 模 块Module1, 在 其 ---- 中 写 上 如 下 的 声 明( 注 意ExitWindowsEx 的 函 数 声 明 必 须 写 在 一 行 上): Public Const LOGOFF = 0 Public Const SHUTDOWN = 1 Public Const REBOOT = 2 Public Const CLOSEPROGRAMES = 4 Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long 在窗体Form1的代码模块中编写 Command1的Click事件过程如下: Private Sub Command1_Click() Dim How As Long If Option1(0).Value = True Then How = LOGOFF '选择了重新登录 ElseIf Option1(1).Value = True Then How = REBOOT '选择了重新启动 ElseIf Option1(2).Value = True Then How = SHUTDOWN '选择了关闭计算机 Else How = CLOSEPROGRAMES '选择了关闭所有程序 End If Call ExitWindowsEx(How, 0) '执行操作 End Sub ---- 按 下F5, 运 行 本 程 序, 选 择 某 个 功 能, 然 后 按 下 确 认 按 钮, 嘿 ! 不 错 吧。 本 程 序 用Visual Basic 5.0 编 写, 在Pwin95 和Pwin97 环 境 下 运 行 正 常。 |
上一个:VB使用编程技巧三则
下一个:VB开发技巧三则