首先HOOK就需要创建一个DLL,这个我就不讲了
例如我们创建的DLL叫:HIDEWINDOWBAR
我们再定义一个全局的 句柄:HKHandle :HHOOK;
还有一个结构体
type
PKBDLLHOOKSTRUCT = ^KBDLLHOOKSTRUCT;
KBDLLHOOKSTRUCT = record
vkCode: DWORD;
ScanCode: DWORD;
Flags: DWORD;
Time: DWORD;
dwExtraInfo: DWORD;
end;
然后开始写代码
首先一个函数是隐藏任务栏
function YCRWL( 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;
下面是定义的两个对外导出的函数
1:function Enablehidewindowsbar:Boolean;stdcall;export; //外部调用
begin
if hHk = 0 then
begin
hHk := SetWindowsHookEx(13,@keyHookProc,HInstance,0);
Result := True;
end
else
Result := False;
ycxsks(true);
end;
2:function disEnablehidewindowsbar:Boolean; stdcall; export; //外部调用
begin
if hHk <> 0 then
begin
UnHookWindowsHookEx(hHk);
hHk := 0;
Result := True;
end
else
Result := False;
ycxsks(False);
end;
exports
Enablehidewindowsbar, disEnablehidewindowsbar;
下面是HOOK函数
主要是现实了都按键的控制
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;
有了这些,可以自己拼接成一个单元,这里就不讲了
本文地址:
http://www.xszlo.com/article/2012-12-03/7570.html,转发请保留这个地址,谢谢
分享到:
相关推荐
通过将任务栏窗口的可见性设置为FALSE,可以实现隐藏任务栏的目的。 在源码中,你可能会看到类似以下的代码片段: ```cpp HHOOK hHook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hInstance, 0); ...
在描述中提到的示例中,开发者可能使用了HOOK技术来拦截和修改与显示和窗口管理相关的系统消息,从而实现隐藏目标程序的目的。“HideWindow”可能是一个函数或者类,用于执行实际的隐藏操作。 **具体实现** 结合...
首先,隐藏任务栏和桌面是通过调用Windows API函数来实现的。例如,可以使用`ShowWindow()`函数来改变任务栏或桌面窗口的可见性。`FindWindow()`函数用于查找特定的窗口句柄,如任务栏的句柄,然后`ShowWindow...
本文将深入探讨如何使用C#语言实现一个具备特定功能的锁屏程序,包括隐藏任务栏、屏蔽"Ctrl+Alt+Del"快捷键以及防止通过"Alt+Tab"切换到其他应用。 首先,C#是微软公司推出的一种面向对象的编程语言,它基于.NET...
在本文中,我们将深入探讨如何使用Qt框架来实现对系统按键的屏蔽,包括常见的组合键如Alt+Tab、Alt+Esc以及Ctrl+Alt+Del,同时也会讲解如何隐藏任务栏。这一技术通常应用于某些特殊场景,例如全屏游戏或演示应用,以...
本资源提供的实例是一个基于C++和QT实现的系统钩子(Hook)应用,它演示了如何屏蔽特定的系统按键、禁止任务管理器以及隐藏任务栏。这在某些特定场景下,例如开发安全软件或演示应用时,可能会很有用。 首先,让...
这个项目可能是一个简单的Windows小程序,通过修改系统设置或者直接操作Windows API来实现隐藏任务栏上的开始按钮。 标签"开始按钮"和"开始菜单"进一步确认了项目的核心功能,即对Windows操作系统中的这两个关键...
本设计旨在实现对操作系统的一些特定功能进行控制,例如屏蔽系统按键、防止用户打开任务管理器以及隐藏任务栏。 首先,要理解QT中的“钩子”(Hook)概念。在Windows系统中,钩子是一种系统消息处理机制,允许应用...
在C#编程中,有时我们需要实现特定的功能,例如阻止用户执行某些操作,比如在这个场景下,我们要使用鼠标钩子来屏蔽任务栏的右键弹出菜单。这通常应用于开发自定义桌面环境或需要控制用户交互的特殊应用。下面将详细...
本项目“HookTest.zip”提供了解决这一问题的一个示例,它使用C# WinForm来创建一个应用程序,实现了全局键盘钩子、音量控制、透明窗体以及任务栏图标的集成功能。下面我们将详细探讨这些知识点。 1. **全局键盘...
本文将深入探讨如何在QT环境中实现一个具有任务栏图标的TrayIcon,并利用钩子(hook)技术来捕捉全局按键,从而实现快捷键功能。 首先,让我们了解QT中的TrayIcon。TrayIcon是QSystemTrayIcon类的实例,它允许应用...
同时,可能会隐藏桌面图标和任务栏,使得在锁定状态下无法访问其他程序。 4. **设置密码验证**:为了解锁,用户需要输入预设的密码。VB提供了多种方法处理用户输入,如字符串比较、加密解密等,以确保密码的安全性...
1. **窗口隐藏技术**:这是GOHIDE的核心功能,它允许用户隐藏特定的程序窗口,使它们在任务栏、桌面以及Alt+Tab切换器中不可见,但程序仍在后台运行。这对于保护个人隐私,尤其是在公共或共享设备上工作时,显得尤为...
将自己的窗口位置/大小设置为当前激活窗口的任务栏,并在目标窗口移动的时候一同移动。通过发消息给目标窗口,实现目标窗口的隐藏/最小化/置顶。 后记:这是很早以前写的一个程序,和我的很多程序一样,写了一半...
对于隐藏任务栏,可以使用API函数`FindWindow`和`ShowWindow`来找到任务栏窗口并隐藏它: ```csharp [DllImport("user32.dll", SetLastError = true)] static extern IntPtr FindWindow(string className, ...
"隐藏窗口"是该软件的核心特性,它通过技术手段使得选定的窗口在任务栏、桌面以及任务管理器中不再显示,但并不会关闭这些窗口,只是将它们从用户的视线中暂时移除。这对于那些不希望他人看到的窗口或者需要专注工作...
至于程序最小化,当检测到 F1 或 F2 被按下后,我们可以调用 `ShowWindow` 函数,传入主窗体的句柄和 `SW_HIDE` 参数,使窗口最小化到任务栏。为了使程序在最小化后依然运行,可以将窗口隐藏到系统托盘。这通常涉及...
通常,游戏在启动时会默认以全屏模式运行,这通常是通过设置视频模式为显示器的分辨率,并禁用任务栏和其他桌面元素来实现的。游戏窗口化就是将这种全屏模式转换为窗口模式,使游戏在一个可调整大小的窗口内运行。 ...
本文将介绍如何使用Delphi 7.0进行键盘HOOK、系统窗口查找与隐藏以及消息过滤,来实现这些功能的屏蔽。 1. 屏蔽和开启任务栏及桌面菜单 要屏蔽任务栏和桌面菜单,我们可以调用Windows API函数`FindWindow`来获取...