详细解读BossKey

简介: 详细解读BossKey

最简单的方法: 一、运用COOLTRAYICON之类的控件。

二、注册一个热键,然后用热键控制。

看一下我写的这个程序,它就可以实现老板键的功能(假定热键是CTRL+ALT+】),按一下这个组合键就隐藏,再按一下就显示出来:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, CoolTrayIcon;

type

TForm1 = class(TForm)

CoolTrayIcon1: TCoolTrayIcon;

procedure CoolTrayIcon1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormDestroy(Sender: TObject);

private

{ Private declarations }//代码效果参考:http://www.ezhiqi.com/zx/art_2146.html

id1: Integer;

procedure WMHotKey(var Msg : TWMHotKey); message WM_HOTKEY;

function ByteReserve(Value: Word):Word;

public

{ Public declarations }

end;

var

Form1: TForm1;

hide_windows: boolean;

implementation

{$R *.dfm}

procedure do_something1;

begin

if hide_windows=false then

begin

Form1.CoolTrayIcon1.HideMainForm;

Form1.CoolTrayIcon1.IconVisible :=False;

hide_windows:=true;

end

else

begin

Form1.CoolTrayIcon1.ShowMainForm;

Form1.CoolTrayIcon1.IconVisible :=True;

hide_windows:=false;

end;

end;

function TForm1.ByteReserve(Value: Word):Word;

var

buf:Byte;

i: Integer;

begin

Result := 0;

for i:=0 to 7 do

begin

buf := Byte((Value shr i) and $01);

Result := Result or (buf shl (7-i));

end;

end;

procedure free_hotkey1;

begin

UnRegisterHotKey(form1.handle,form1.id1);

globalDeleteAtom(form1.id1);

end;

procedure set_hotkey(hotkey_name:pchar;key_name:string;var key_id:integer);

var

TheKey,Shirt: Word;

TheShiftState: TShiftState;

begin

if globalFindAtom(hotkey_name) = 0 then

begin

key_id:=globalAddAtom(hotkey_name);

ShortCutToKey(texttoshortcut(key_name),TheKey,TheShiftState);

Shirt:= form1.ByteReserve(Word((texttoshortcut(key_name) and $F000) shr 8));

RegisterHotKey(form1.Handle,key_id,Shirt,Cardinal(Chr(TheKey)));

end;

end;

procedure Tform1.WMHotKey (var Msg : TWMHotKey);

begin

if msg.HotKey = form1.id1 then do_something1;

end;

procedure TForm1.CoolTrayIcon1Click(Sender: TObject);

begin

Form1.CoolTrayIcon1.ShowMainForm;

end;

procedure TForm1.FormCreate(Sender: TObject);

var

hotkey_1_name:string;

begin

hide_windows:=false;

hotkey_1_name:='CTRL+ALT+】';

set_hotkey('MyHotkey1',hotkey_1_name,form1.id1);

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin

free_hotkey1;

end;

end.

相关文章
|
4月前
|
网络协议 网络安全 网络虚拟化
网络技术基础(4)——IP地址规划
【2月更文挑战第8天】网络基础笔记
|
3月前
|
Java 程序员
程序员必知:【java】判断字符串是否整数的三种方式,孰优孰劣请自行判断
程序员必知:【java】判断字符串是否整数的三种方式,孰优孰劣请自行判断
114 3
|
3月前
|
监控 Shell 测试技术
一篇文章讲明白MonkeyAPP压力稳定性测试
一篇文章讲明白MonkeyAPP压力稳定性测试
166 1
|
3月前
|
Linux 芯片
一篇文章讲明白Linux下控制GPIO的三种方法
一篇文章讲明白Linux下控制GPIO的三种方法
382 3
|
3月前
|
应用服务中间件 Linux nginx
详细解读docker国内镜像源docker镜像大全
详细解读docker国内镜像源docker镜像大全
817 0
|
3月前
|
JavaScript 前端开发
详尽分享解决img的src属性为空时会有边框的情况
详尽分享解决img的src属性为空时会有边框的情况
146 0
|
3月前
|
JavaScript
一篇文章讲明白js鼠标侧键监听(也有左键,中键和右键)
一篇文章讲明白js鼠标侧键监听(也有左键,中键和右键)
218 0
|
3月前
|
移动开发 JavaScript 程序员
程序员必知:vue播放video插件vue
程序员必知:vue播放video插件vue
172 0
|
3月前
|
SQL 缓存 测试技术
一篇文章讲明白LoadRunner:参数化
一篇文章讲明白LoadRunner:参数化
111 0
|
3月前
|
JSON 程序员 数据格式
程序员必知:同步接口和异步接口
程序员必知:同步接口和异步接口
166 0