编写后台监控软件的技巧
后台监控软件,为了达到隐蔽监控的目的,应该满足正常运行时,不显示在任务栏上,在按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}
相关新闻>>
- 发表评论
-
- 最新评论 进入详细评论页>>
今日头条
更多>>您可能感兴趣的文章
- winform下通过webclient使用非流方式上传(post)数据和
- Asp.net MVC源码分析--Model Validation(Client端)实现(2)
- 谈.Net委托与线程——创建无阻塞的异步调用(一
- asp.net 六大内置对象(2)
- Pro ASP.NET MVC 3 Framework学习笔记之九
- ASP.NET数据格式的Format--DataFormatString
- 微软ASP.NET站点部署指南(11):部署SQL Server数据
- 教你如何来恢复一个丢失的数据文件
- asp.net js模拟Button点击事件
- MVC中一个表单实现多个提交按钮(一个action搞定