通过api和键盘钩子彻底屏蔽任务条和开始菜单。
来源:互联网 发布:解压密码破解软件 编辑:程序博客网 时间:2024/04/26 08:08
在一些碰到过的多媒体软件编制过程中通常需要彻底屏蔽任务条,通常的办法是调用ShowWindow(h,SW_hide)来隐藏任务条,但是不能屏蔽开始菜单,通过键盘的win功能键还是可以打开开始菜单,所以配合键盘钩子,来屏蔽开始菜单。
library HIDE;
{ Important note about DLL memory management: ShareMem must be the
first unit in your library's USES clause AND your project's (select
Project-View Source) USES clause if your DLL exports any procedures or
functions that pass strings as parameters or function results. This
applies to all strings passed to and from your DLL--even those that
are nested in records and classes. ShareMem is the interface unit to
the BORLNDMM.DLL shared memory manager, which must be deployed along
with your DLL. To avoid using BORLNDMM.DLL, pass string information
using PChar or ShortString parameters. }
uses
SysUtils,
Classes,
windows,
messages;
var
hHk :HHOOK;
type
PKBDLLHOOKSTRUCT = ^KBDLLHOOKSTRUCT;
KBDLLHOOKSTRUCT = record
vkCode: DWORD;
ScanCode: DWORD;
Flags: DWORD;
Time: DWORD;
dwExtraInfo: DWORD;
end;
{$R *.res}
function ycxsks( yc:Boolean): Boolean;stdcall; //隐藏-显示任务条
var
h:THandle;
begin
if yc = True then
begin
h:=FindWindow('Shell_TrayWnd',nil);
ShowWindow(h,SW_hide); //隐藏任务条
end
else
begin
h:=FindWindow('Shell_TrayWnd',nil);
ShowWindow(h,SW_SHOW); //显示任务条
end;
Result:=true;
end;
function keyHookProc(nCode: Integer;WParam: WPARAM;LParam: LPARAM): LRESULT;stdcall;
//调用键盘钩子,屏蔽左右win功能键
var
p: PKBDLLHOOKSTRUCT;
y: integer;
begin
if nCode<0 then
Result:= CallNextHookEx(hHk,nCode,WParam,LParam)
else
begin
y := 0;
case WParam of
WM_KEYDOWN,WM_SYSKEYDOWN: //按键后判断所按键
begin
p:=PKBDLLHOOKSTRUCT(Lparam);
if p^.vkCode = VK_LWIN then
y := 1;
if p^.vkCode = VK_RWIN then
y := 1;
end;
WM_KEYUP,WM_SYSKEYUP: //松开按键后判断所按键
begin
p:=PKBDLLHOOKSTRUCT(Lparam);
if p^.vkCode = VK_LWIN then
y := 1;
if p^.vkCode = VK_RWIN then
y := 1;
end;
end;
if y=1 then
Result:=1 //如果为WIN功能键则屏蔽
else
Result:= CallNextHookEx(hHk,nCode,WParam,LParam); //其他键放下一个钩子
end
end;
function Enablehide:Boolean;stdcall;export; //外部调用
begin
if hHk = 0 then
begin
hHk := SetWindowsHookEx(13,@keyHookProc,HInstance,0);
Result := True;
end
else
Result := False;
ycxsks(true);
end;
function Disablehide:Boolean; stdcall; export; //外部调用
begin
if hHk <> 0 then
begin
UnHookWindowsHookEx(hHk);
hHk := 0;
Result := True;
end
else
Result := False;
ycxsks(False);
end;
exports
Enablehide,
Disablehide;
end.
- 通过api和键盘钩子彻底屏蔽任务条和开始菜单。
- 通过API和键盘钩子彻底屏蔽任务条和开始菜单
- Delphi中通过API和键盘钩子彻底屏蔽任务栏和开始菜单
- Delphi中通过API和键盘钩子彻底屏蔽任务栏和开始菜单
- 通过api和键盘钩子彻底屏蔽任务栏和开始菜
- C#钩子实现简单鼠标键盘的监控和屏蔽
- 键盘和鼠标钩子
- [Winform]通过钩子监控键盘操作和鼠标移动
- VC++中键盘钩子和鼠标钩子
- vc++键盘钩子和鼠标钩子
- 设置全局键盘钩子和消息钩子
- C#使用API屏蔽系统热键和任务管理器
- C#使用API屏蔽系统热键和任务管理器
- C#使用API屏蔽系统热键和任务管理器
- c# winform使用API屏蔽系统热键和任务管理器
- c# winform使用API屏蔽系统热键和任务管理器
- C#使用API屏蔽系统热键和任务管理器
- c# 钩子屏蔽键盘快捷键
- 通用分页显示查询存储过程(SQL Server)
- gcc 命令行详解(转)
- 职业吸引力调查:IT工程师―科技新贵不好当(转)
- showModalDialog()和showModelessDialog()用法
- Smart Client 高级开发(微软讲座下载)
- 通过api和键盘钩子彻底屏蔽任务条和开始菜单。
- 微软开发者系列讲座下载
- 探讨Spring框架使用真相
- 演练:Windows 窗体中的简单数据访问,已做!
- 程序员
- 港/美 李连杰国语全集 9.33 GB 永不断种
- Chris.J ASP Upload Script v2.2
- Ioc模式
- AOP是什么?