`
sbabzc
  • 浏览: 38988 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

通过HOOK来实现隐藏任务栏

 
阅读更多
首先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,转发请保留这个地址,谢谢
分享到:
评论

相关推荐

    VC 利用HOOK屏蔽热键隐藏Windows任务栏.rar

    通过将任务栏窗口的可见性设置为FALSE,可以实现隐藏任务栏的目的。 在源码中,你可能会看到类似以下的代码片段: ```cpp HHOOK hHook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hInstance, 0); ...

    HOOK技术隐藏VC源码

    在描述中提到的示例中,开发者可能使用了HOOK技术来拦截和修改与显示和窗口管理相关的系统消息,从而实现隐藏目标程序的目的。“HideWindow”可能是一个函数或者类,用于执行实际的隐藏操作。 **具体实现** 结合...

    基于C++&QT钩子实现屏蔽系统按键、任务管理器、任务栏的实例.zip

    "基于C++&QT钩子实现屏蔽系统按键、任务管理器、任务栏的实例.zip",我们探讨的是如何利用C++编程语言和QT库来创建一个应用程序,该程序能够拦截并控制系统的特定行为,如阻止用户按下某些键、禁用任务管理器以及...

    VC桌面控制(隐藏任务栏和桌面,最小化所有窗口等)

    首先,隐藏任务栏和桌面是通过调用Windows API函数来实现的。例如,可以使用`ShowWindow()`函数来改变任务栏或桌面窗口的可见性。`FindWindow()`函数用于查找特定的窗口句柄,如任务栏的句柄,然后`ShowWindow...

    C#锁屏程序(隐藏任务栏/屏蔽CRT+ALT+DEL快捷键)

    本文将深入探讨如何使用C#语言实现一个具备特定功能的锁屏程序,包括隐藏任务栏、屏蔽"Ctrl+Alt+Del"快捷键以及防止通过"Alt+Tab"切换到其他应用。 首先,C#是微软公司推出的一种面向对象的编程语言,它基于.NET...

    qt钩子屏蔽系统按键、任务管理器、任务栏实例

    在本文中,我们将深入探讨如何使用Qt框架来实现对系统按键的屏蔽,包括常见的组合键如Alt+Tab、Alt+Esc以及Ctrl+Alt+Del,同时也会讲解如何隐藏任务栏。这一技术通常应用于某些特殊场景,例如全屏游戏或演示应用,以...

    vc++隐藏windows开始菜单开始按钮.源代码

    这个项目可能是一个简单的Windows小程序,通过修改系统设置或者直接操作Windows API来实现隐藏任务栏上的开始按钮。 标签"开始按钮"和"开始菜单"进一步确认了项目的核心功能,即对Windows操作系统中的这两个关键...

    qt钩子屏蔽系统按键、任务管理器、任务栏实例.zip

    本设计旨在实现对操作系统的一些特定功能进行控制,例如屏蔽系统按键、防止用户打开任务管理器以及隐藏任务栏。 首先,要理解QT中的“钩子”(Hook)概念。在Windows系统中,钩子是一种系统消息处理机制,允许应用...

    c#用鼠标钩子屏蔽任务栏右键弹出菜单

    在C#编程中,有时我们需要实现特定的功能,例如阻止用户执行某些操作,比如在这个场景下,我们要使用鼠标钩子来屏蔽任务栏的右键弹出菜单。这通常应用于开发自定义桌面环境或需要控制用户交互的特殊应用。下面将详细...

    HookTest.zip

    本项目“HookTest.zip”提供了解决这一问题的一个示例,它使用C# WinForm来创建一个应用程序,实现了全局键盘钩子、音量控制、透明窗体以及任务栏图标的集成功能。下面我们将详细探讨这些知识点。 1. **全局键盘...

    myTrayIcon_QT_TrayIcon_hook_

    本文将深入探讨如何在QT环境中实现一个具有任务栏图标的TrayIcon,并利用钩子(hook)技术来捕捉全局按键,从而实现快捷键功能。 首先,让我们了解QT中的TrayIcon。TrayIcon是QSystemTrayIcon类的实例,它允许应用...

    VB.zip_task key hook_vb挂机锁_挂机锁

    同时,可能会隐藏桌面图标和任务栏,使得在锁定状态下无法访问其他程序。 4. **设置密码验证**:为了解锁,用户需要输入预设的密码。VB提供了多种方法处理用户输入,如字符串比较、加密解密等,以确保密码的安全性...

    GOHIDE 窗口隐藏

    1. **窗口隐藏技术**:这是GOHIDE的核心功能,它允许用户隐藏特定的程序窗口,使它们在任务栏、桌面以及Alt+Tab切换器中不可见,但程序仍在后台运行。这对于保护个人隐私,尤其是在公共或共享设备上工作时,显得尤为...

    Delphi窗口快速通道-标题栏显示按钮.rar

    将自己的窗口位置/大小设置为当前激活窗口的任务栏,并在目标窗口移动的时候一同移动。通过发消息给目标窗口,实现目标窗口的隐藏/最小化/置顶。  后记:这是很早以前写的一个程序,和我的很多程序一样,写了一半...

    winform 控制电脑只能操作特定网站

    对于隐藏任务栏,可以使用API函数`FindWindow`和`ShowWindow`来找到任务栏窗口并隐藏它: ```csharp [DllImport("user32.dll", SetLastError = true)] static extern IntPtr FindWindow(string className, ...

    HideWndow

    "隐藏窗口"是该软件的核心特性,它通过技术手段使得选定的窗口在任务栏、桌面以及任务管理器中不再显示,但并不会关闭这些窗口,只是将它们从用户的视线中暂时移除。这对于那些不希望他人看到的窗口或者需要专注工作...

    Delphi 键盘钩子(Hook) + 程序最小化

    至于程序最小化,当检测到 F1 或 F2 被按下后,我们可以调用 `ShowWindow` 函数,传入主窗体的句柄和 `SW_HIDE` 参数,使窗口最小化到任务栏。为了使程序在最小化后依然运行,可以将窗口隐藏到系统托盘。这通常涉及...

    游戏窗口化参考资料.rar

    通常,游戏在启动时会默认以全屏模式运行,这通常是通过设置视频模式为显示器的分辨率,并禁用任务栏和其他桌面元素来实现的。游戏窗口化就是将这种全屏模式转换为窗口模式,使游戏在一个可调整大小的窗口内运行。 ...

    全屏程序的系统功能屏蔽处理

    本文将介绍如何使用Delphi 7.0进行键盘HOOK、系统窗口查找与隐藏以及消息过滤,来实现这些功能的屏蔽。 1. 屏蔽和开启任务栏及桌面菜单 要屏蔽任务栏和桌面菜单,我们可以调用Windows API函数`FindWindow`来获取...

Global site tag (gtag.js) - Google Analytics