Delphi编写后台监控软件
 
      文章来源:Delphi程序员之家  
 
  后台监控软件,为了达到隐蔽监控的目的,应该满足正常运行时,不显示在任务栏上,在按Ctrl+Alt+Del出现的任务列表中也不显示,管理员可以通过热键调出隐藏的运行界面。要作到这些,必须把当前进程变为一个系统服务,并且定义全局热键。
  一、把当前进程变为一个系统服务:
  目的是在任务列表中把程序隐藏起来。调用API函数RegisterServiceProcess实现。
  二、定义全局热键(本例中定义热键Ctrl+Del+R),步骤:
  1、定义捕获Windows消息WM_HOTKEY的钩子函数,即:procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;
  2、向Windows加入一个全局原子 Myhotkey: GlobalAddAtom(’MyHotkey’), 并保留其句柄。
  3、向Windows登记热键:调用API函数RegisterHotKey实现。
  三、源程序:

unit Unit1;

interface

uses

Windows, Messages, Forms, Dialogs, Classes, Controls, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

private {热键标识ID} id: Integer; procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY; { Privat-Declarations}

public

{ Public-Declarations}

end; var Form1 :TForm1;

implementation

const

RSP_SIMPLE_SERVICE=1;

function RegisterServiceProcess (dwProcessID, dwType: DWord) : DWord; stdcall; external ’KERNEL32.DLL’; {$R *.DFM}

{捕获热键消息}

procedure

TForm1.WMHotKey (var Msg : TWMHotKey);

begin

if msg.HotKey = id then ShowMessage(’Ctrl+Alt+R键被按下!’); form1.Visible :=true;

end;

procedure TForm1.FormCreate(Sender: TObject);

Const {ALT、CTRL和R键的虚拟键值}

MOD_ALT = 1;

MOD_CONTROL = 2;

VK_R = 82;

begin

{首先判断程序是否已经运行}

if GlobalFindAtom(’MyHotkey’) = 0 then

begin

{注册全局热键Ctrl + Alt + R}

id:=GlobalAddAtom(’MyHotkey’);

RegisterHotKey(handle,id,MOD_CONTROL+MOD_Alt,VK_R);

end

else

halt;

end;

  {把当前进程变为一个系统服务,从而在任务列表中把程序隐藏起来}

procedure TForm1.Button1Click(Sender: TObject);

begin

RegisterServiceProcess(GetCurrentProcessID,RSP_SIMPLE_SERVICE); form1.Hide;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

close;

end;

{退出时释放全局热键}

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

UnRegisterHotKey(handle,id);

GlobalDeleteAtom(id);

end;

end.

  四、说明:
  在后台监控软件中使用以上功能,可真正实现隐蔽运行,热键调出,便于管理员进行管理。程序在Win98,Delphi5.0中运行通过。

Delphi编写后台监控软件的更多相关文章

  1. 转 : 用Delphi编写安装程序

    http://www.okbase.net/doc/details/931  还没有亲自验证过,仅收藏 当你完成一个应用软件的开发后,那么你还需要为该软件做一个规范化的安装程序,这是程序设计的最后一步 ...

  2. DELPHI编写服务程序总结

    DELPHI编写服务程序总结 一.服务程序和桌面程序的区别 Windows 2000/XP/2003等支持一种叫做“系统服务程序”的进程,系统服务和桌面程序的区别是:系统服务不用登陆系统即可运行:系统 ...

  3. DELPHI编写服务程序总结(在系统服务和桌面程序之间共享内存,在服务中使用COM组件)

    DELPHI编写服务程序总结 一.服务程序和桌面程序的区别 Windows 2000/XP/2003等支持一种叫做“系统服务程序”的进程,系统服务和桌面程序的区别是:系统服务不用登陆系统即可运行:系统 ...

  4. 利用Delphi编写Socket通信程序

    一.Delphi与Socket 计算机网络是由一系列网络通信协议组成的,其中的核心协议是传输层的TCP/IP和UDP协议.TCP是面向连接的,通信双方保持一条通路,好比目前的电话线,使用telnet登 ...

  5. CEPH监控软件

    概述 目前主流的Ceph开源监控软件有:Calamari.VSM.Inkscope.Ceph-Dash.Zabbix等,下面简单介绍下各个开源组件. Calamari 概述 Calamari对外提供了 ...

  6. 步步为营-73-asp.net的简单练习(根据美工提供静态页面,编写后台代码)

    说明:实际企业中开发分工是很明确,往往程序员根据美工提供的UI界面进行后台代码的编写. 1.1 原始HTML页面 1.2 使用aspx进行修改 这里使用到了三层架构 using System; usi ...

  7. 用Delphi开发视频聊天软件

    摘要:目前网上视频聊天软件.视频会议软件.可视IP电话软件随处可见,你是否想自己做一个玩玩?其实这类软件无非是视频加上网络而建成的.如果熟悉视频捕捉和网络传输技术,根本就难不倒你.微软为软件开发人员提 ...

  8. delphi编写提取exe文件的ICO图标

    http://www.duote.com/tech/4/11797.html delphi编写提取exe文件的ICO图标 7.0分 出处:天下网吧 时间:2011-08-05 人气:2390 核心提示 ...

  9. python3 后台维护软件

    后台维护软件 一.思路: 登录: 1.用户登录(编写GUI用户登录界面) 使用模块:tkinter,pymssql 验证逻辑: 1.获取文本框输入数据. 2.进行空值值判断 if ...else... ...

随机推荐

  1. zmq的send

    int zmq_send (void *socket, zmq_msg_t *msg, int flags);      2.2.1 nt zmq_send (void *socket, void * ...

  2. leetcode-158周赛-5225-最大相等频率

    题目描述: 方法: class Solution(object): def maxEqualFreq(self, A): count = collections.Counter() freqs = c ...

  3. 【SPOJ DQUERY】区间数字统计

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 因为区间的端点移动一个单位的话,只会涉及到一个元素的增多或减少. 因此可以用莫队算法来解决. 只需要开一个数组(大小1百万),用下标来快速检索 ...

  4. Android中onTouch方法的执行过程以及和onClick执行发生冲突的解决办法

    $*********************************************************************************************$ 博主推荐 ...

  5. kafka保证数据不丢失机制

    kafka如何保证数据的不丢失 1.生产者如何保证数据的不丢失:消息的确认机制,使用ack机制我们可以配置我们的消息不丢失机制为-1,保证我们的partition的leader与follower都保存 ...

  6. Java--用键盘控制小球

    package secondpack; import java.awt.*; import java.awt.event.*; public class MyBall { public static ...

  7. 修改ActiveProcessLinks链表隐藏进程

    在Windows内核中有一个活动进程链表AcvtivePeorecssList.它是一个双向链表,保存着系统中所有进程的EPROCESS结构.特别地,进程的EPROCESS结构包含一个具有指针成员FL ...

  8. hexo next主题深度优化(九),给博客加入主题,护眼主题,护眼色。

    文章目录 背景 效果 码 _layout.swig custom.styl eye.js 引用eye.js 直接引用 main.js pjax的函数中重写 个人博客:https://mmmmmm.me ...

  9. jsp-request应用1

    用jsp写表单提交数据时需要用到request去读取数据,表单代码如下: <form action="requestresult.jsp" method="post ...

  10. ps-奇幻金鱼彩妆

    1.打开背景图,拷贝一份防止出错 2增加色相饱和度 改变全局的饱和度.这是 为了改变嘴唇的颜色.其他变色的地方可以通过添加蒙版,然后用背景色为黑色的画笔擦掉 3给眼睛上加上金鱼  置入图片   类型选 ...