详细解读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.

相关文章
|
11天前
|
应用服务中间件 Linux nginx
详细解读docker国内镜像源docker镜像大全
详细解读docker国内镜像源docker镜像大全
371 0
|
11天前
|
前端开发 程序员
程序员必知:一、导航菜单
程序员必知:一、导航菜单
10 2
|
10天前
|
Java
Java中代码块区别及代码示例
Java中代码块区别及代码示例
|
10天前
|
数据可视化 Python
详尽分享用Python进行时间序列预测的7种方法
详尽分享用Python进行时间序列预测的7种方法
|
10天前
|
算法 安全 Java
Java代码优化方法和具体展示
Java代码优化方法和具体展示
|
10天前
|
XML Java 数据库连接
一篇文章讲明白MyBatis魔法堂:即学即用篇
一篇文章讲明白MyBatis魔法堂:即学即用篇
|
10天前
|
人工智能 Java BI
一篇文章讲明白MartianAddition
一篇文章讲明白MartianAddition
|
10天前
|
机器学习/深度学习 程序员
程序员必知:常见的激活函数
程序员必知:常见的激活函数
10 0
|
11天前
|
移动开发 程序员
程序员必知:【转】FMX动态创建及销毁(释放free)对象
程序员必知:【转】FMX动态创建及销毁(释放free)对象
|
11天前
|
人工智能 Java 程序员
程序员必知:uva10808
程序员必知:uva10808