有谁知道老板键的效果是怎么实现的?? 前几天看见我朋友在用3721上网助手的老板键,ALT+空格一按,所有IE窗口都没了,再一按又都出来了好玩的不的了回去想了半天也不得解,就前来问各路高手如何实现小弟在此先谢谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哈哈 楼上的就是一个HOOK 键盘 然后动态隐藏/显示 某些东西就是 用API RegisterHotKey 注册一个快捷键即可。BOOL RegisterHotKey( HWND hWnd, // handle to window int id, // hot key identifier UINT fsModifiers, // key-modifier options UINT vk // virtual-key code);可参考 msdn。 beyondtkl(大龙驹<逝追.弗瑞德>) 别这么不厚道了。这个办法可行,但比较麻烦。还是注册热键吧,价格便宜,量又足。 注册热键,然后在响应事件里面枚举IE的窗口(如果想隐藏IE的话),找到后发消息,SW_Hide给对放就行了。 enumwindow而已 这种东西 没什么意义 无聊! 偶照样 玩 CS 老板能把偶怎样 他敢杀偶不成 有一个很好用的方法,先运行一个透明的窗体,然后通过OnKeyDown实现,代码如下:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;type TForm1 = class(TForm) Timer1: TTimer; Image1: TImage; procedure FormActivate(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState); private { Private declarations } public { Public declarations } end;var Form1: TForm1;const WS_EX_LAYERED = $80000; AC_SRC_OVER = $0; AC_SRC_ALPHA = $1; AC_SRC_NO_PREMULT_ALPHA = $1; AC_SRC_NO_ALPHA = $2; AC_DST_NO_PREMULT_ALPHA = $10; AC_DST_NO_ALPHA = $20; LWA_COLORKEY = $1; LWA_ALPHA = $2; ULW_COLORKEY = $1; ULW_ALPHA = $2 ; ULW_OPAQUE = $4 ;implementation{$R *.dfm}procedure TForm1.FormActivate(Sender: TObject);var l:longint;begin l:=getWindowLong(Handle, GWL_EXSTYLE); l := l Or WS_EX_LAYERED; SetWindowLong (handle, GWL_EXSTYLE, l); SetLayeredWindowAttributes (handle, 600, 100, LWA_ALPHA); //使窗体透明的API,第三的参数100是控制透明度的,范围是0..255 ; ShowWindow(application.Handle,SW_HIDE); //在任务栏中隐藏该窗体的API ;end;procedure TForm1.Timer1Timer(Sender: TObject);begin form1.Hide; form1.Show; //保持Form1一直有焦点end;procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);var l:longint;begin if key=vk_Insert then begin l:=getWindowLong(Handle, GWL_EXSTYLE); l := l Or WS_EX_LAYERED; SetWindowLong (handle, GWL_EXSTYLE, l); SetLayeredWindowAttributes (handle, 600, 255, LWA_ALPHA); timer1.Enabled:=false; form1.WindowState:=wsMaximized; image1.Visible:=true; //按下Insert键后,使窗体最大化,并且调出已截好的图片 ; end;end;end. 把键盘钩子做在DLL里面搞个全局的键盘钩子就不用让Form获得焦点了 HookorRegisterHotKeyEnumWindowShowWindow(hWnd,SW_HIDE) windows服务切换输入法的问题 idpop3怎样区分邮件是否为新邮件? listbox问题??????? win98和win2000调用计算器通用的怎么写啊,真的真的没有可用分,只能祝你身体健康 关于Pen,请高手急救!!! 大家来看看这个如何实现?谢谢了! 如何判断中文英文字符的长度? 关于删除表的 一个小问题,请大家帮帮忙! 关于用DELPHI开发DLL应用 问个问题,实在搞不定。100分,有分均沾 DELPHI里如有编译错误,就不能逐行运行到设置断点处吗?
HWND hWnd, // handle to window
int id, // hot key identifier
UINT fsModifiers, // key-modifier options
UINT vk // virtual-key code
);可参考 msdn。
发消息,SW_Hide给对放就行了。
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;type
TForm1 = class(TForm)
Timer1: TTimer;
Image1: TImage;
procedure FormActivate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;const
WS_EX_LAYERED = $80000;
AC_SRC_OVER = $0;
AC_SRC_ALPHA = $1;
AC_SRC_NO_PREMULT_ALPHA = $1;
AC_SRC_NO_ALPHA = $2;
AC_DST_NO_PREMULT_ALPHA = $10;
AC_DST_NO_ALPHA = $20;
LWA_COLORKEY = $1;
LWA_ALPHA = $2;
ULW_COLORKEY = $1;
ULW_ALPHA = $2 ;
ULW_OPAQUE = $4 ;implementation{$R *.dfm}procedure TForm1.FormActivate(Sender: TObject);
var l:longint;
begin
l:=getWindowLong(Handle, GWL_EXSTYLE);
l := l Or WS_EX_LAYERED;
SetWindowLong (handle, GWL_EXSTYLE, l);
SetLayeredWindowAttributes (handle, 600, 100, LWA_ALPHA);
//使窗体透明的API,第三的参数100是控制透明度的,范围是0..255 ;
ShowWindow(application.Handle,SW_HIDE);
//在任务栏中隐藏该窗体的API ;
end;procedure TForm1.Timer1Timer(Sender: TObject);
begin
form1.Hide;
form1.Show; //保持Form1一直有焦点
end;procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var l:longint;
begin
if key=vk_Insert then
begin
l:=getWindowLong(Handle, GWL_EXSTYLE);
l := l Or WS_EX_LAYERED;
SetWindowLong (handle, GWL_EXSTYLE, l);
SetLayeredWindowAttributes (handle, 600, 255, LWA_ALPHA);
timer1.Enabled:=false;
form1.WindowState:=wsMaximized;
image1.Visible:=true;
//按下Insert键后,使窗体最大化,并且调出已截好的图片 ;
end;
end;end.
搞个全局的键盘钩子
就不用让Form获得焦点了
or
RegisterHotKeyEnumWindowShowWindow(hWnd,SW_HIDE)