|
导读山东济宁鲁抗医药集团研究所 许振华---- 在WIN9X 中, 如 果 你 按 下Ctrl-Alt-Del, 就 会 看 到 目 前 打 开 的 应 用 程 序。 现 在 的 一 些 黑 客 程 ... 山东济宁鲁抗医药集团研究所 许振华---- 在WIN9X 中, 如 果 你 按 下Ctrl-Alt-Del, 就 会 看 到 目 前 打 开 的 应 用 程 序。 现 在 的 一 些 黑 客 程 序 是 从 Ctrl-Alt-Del 列 表 中 看 不 到 的, 那 么 这 是 如 何 实 现 的, 想 使 你 的 程 序 也 被 别 人 看 不 到 吗 ? 下 面 告 诉 是 实 现 的 方 法。 ---- 要 实 现 这 一 点, 需 要 将 你 的 程 序 注 册 为 服 务 器(service), 这 可 以 利 用RegisterService API 函 数 将 程 序 的 进 程ID 进 行 注 册 来 实 现。 但 程 序 退 出 时 不 要 忘 记 需 要 使 用 此API 函 数 将 服 务 器 注 册 取 消。 下 面 以VB 程 序 举 例 说 明。 ---- 在 窗 体 中 加 入 两 个 按 钮,Command1、Command2, 在 窗 体 的 总 体 声 明 部 分 声 明API 函 数、 需 要 的 常 数 并 编 写 注 册 和 释 放 注 册 的 过 程: Private Declare Function GetCurrentProcessId _ Lib "kernel32" () As Long Private Declare Function GetCurrentProcess _ Lib "kernel32" () As Long Private Declare Function RegisterServiceProcess _ Lib "kernel32" (ByVal dwProcessID As Long, _ ByVal dwType As Long) As Long Private Const RSP_SIMPLE_SERVICE = 1 Private Const RSP_UNREGISTER_SERVICE = 0 Private Sub MakeMeService() Dim pid As Long Dim reserv As Long pid = GetCurrentProcessId() regserv = RegisterServiceProcess (pid, RSP_SIMPLE_SERVICE) End Sub Private Sub UnMakeMeService() Dim pid As Long Dim reserv As Long pid = GetCurrentProcessId() regserv = RegisterServiceProcess(pid, _ RSP_UNREGISTER_SERVICE) End Sub 双击命令按钮1, 写如下代码: Private Sub Command1_Click() Call MakeMeService End Sub 双击命令按钮2, 写如下代码: Private Sub Command2_Click() Call UnMakeMeService End Sub ---- 下 面 就 可 以 运 行 了, 运 行 此 程 序, 单 击 按 钮1, 按 下Ctrl-Alt-Del 键, 在 列 表 中 看 到 你 的 程 序 了 吗 ? 再 单 击 按 钮2, 按 下Ctrl-Alt-Del, 再 看 一 看 发 生 了 什 么 ? ---- 本 程 序 在VB 5.0、WIN98 中 调 试 通 过。 |
温馨提示:喜欢本站的话,请收藏一下本站!