2024年3月20日发(作者:)

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 '';

{$R *.DFM}

{捕获热键消息}

procedure ey (var Msg : TWMHotKey);

begin

if = id then

ShowMessage(’Ctrl+Alt+R键被按下!’);

e :=true;

end;

procedure eate(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 1Click(Sender: TObject);

begin

RegisterServiceProcess(GetCurrentProcessID,RSP_SIMPLE_SERVICE);

;

end;

procedure 2Click(Sender: TObject);

begin

close;

end;

{退出时释放全局热键}

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

begin

UnRegisterHotKey(handle,id);

GlobalDeleteAtom(id);

end;

end.

或者用以下是工程文件,不显示运行窗口!

lize;

Form(TForm1,Form1);

inForm:=False; //不显示运行窗口

;