关于网友提出的“ 有谁知道老板键的效果是怎么实现的??”问题疑问,本网通过在网上对“ 有谁知道老板键的效果是怎么实现的??”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 有谁知道老板键的效果是怎么实现的??
描述: 前几天看见我朋友在用3721上网助手的老板键,ALT+空格一按,所有IE窗口都没了,再一按又都出来了
好玩的不的了
回去想了半天也不得解,就前来问各路高手如何实现
小弟在此先谢谢了!
解决方案1: Hook
or
RegisterHotKey
EnumWindow
ShowWindow(hWnd,SW_HIDE)
解决方案2: 把键盘钩子做在DLL里面
搞个全局的键盘钩子
就不用让Form获得焦点了
解决方案3: 有一个很好用的方法,先运行一个透明的窗体,然后通过OnKeyDown实现,代码如下:
unit Unit1;
interface
uses
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.
解决方案4: enumwindow而已 这种东西 没什么意义 无聊! 偶照样 玩 CS 老板能把偶怎样 他敢杀偶不成
解决方案5: 用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。
解决方案6: 注册热键,然后在响应事件里面枚举IE的窗口(如果想隐藏IE的话),找到后
发消息,SW_Hide给对放就行了。
以上介绍了“ 有谁知道老板键的效果是怎么实现的??”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3594800.html