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

相关文章
|
8月前
|
网络协议 网络安全 网络虚拟化
网络技术基础(4)——IP地址规划
【2月更文挑战第8天】网络基础笔记
|
7月前
经验大分享:OpenFOAM中的边界条件(一)
经验大分享:OpenFOAM中的边界条件(一)
246 0
|
7月前
|
JavaScript 前端开发
详尽分享解决img的src属性为空时会有边框的情况
详尽分享解决img的src属性为空时会有边框的情况
268 0
|
7月前
|
算法 程序员
程序员必知:字符串压缩(三)之短字符串压缩
程序员必知:字符串压缩(三)之短字符串压缩
181 0
|
7月前
|
前端开发
经验大分享:rotate3D篇二
经验大分享:rotate3D篇二
96 0
|
7月前
|
数据采集 前端开发 数据可视化
程序员必知:基于氚云平台的应用开发学习(一)
程序员必知:基于氚云平台的应用开发学习(一)
244 0
|
7月前
|
程序员
程序员必知:WebBrowser脚本错误的完美解决方案
程序员必知:WebBrowser脚本错误的完美解决方案
296 0
|
7月前
|
运维 数据库 网络架构
详尽分享运维网络面试题101道
详尽分享运维网络面试题101道
233 0
|
7月前
|
JavaScript
一篇文章讲明白js鼠标侧键监听(也有左键,中键和右键)
一篇文章讲明白js鼠标侧键监听(也有左键,中键和右键)
317 0
|
7月前
|
开发框架 Oracle Java
一篇文章讲明白Java简介
一篇文章讲明白Java简介
198 0