zoukankan      html  css  js  c++  java
  • Alt+Ctrl+Del组合键的屏蔽

    昨天昊哥让我去想办法实现全局屏蔽,也就是要把Alt+Ctrl+Del这个组合键屏蔽。
    去CSDN问了一下,得到的结论是Alt+Ctrl+Del这个组合键是系统直接调用,普通方法无法屏蔽。通过试验,用一般的钩子的确无法屏蔽掉。
    然后去问老大,老大告诉我两种方法,一种就是驱动键盘过滤,另外一种就是把winlogin.exe挂起。 第一种牵扯到驱动编程,就不弄了(太麻烦了)。
    研究第二种。 winlogin.exe是系统进程,负责管理系统的登录。以自己的愚见就是响应这个组合键的。如果将进程挂起,那么组合键就不被响应。和屏蔽一样。找到思路了,就找方法。
    挂起线程很简单,因为系统提供了 SuspendThread() API 可以直接调用, MSDN中没有提到挂进程的API。老办法,百度嘛。
    找到函数NTSTATUS NtSuspendProcess(HANDLE hProcess);
                      NTSTATUS NtResumeProcess(HANDLE hProcess);
    英语好的一眼就看出是什么意思了(原谅战5的英语渣)。这是Windows Native API,介于Windows API和 内核API之间。本地版msdn是找不到的。属于 NTDLL.DLL 。
    接下来就好办了,动态加载
    typedef NTSTATUS (_stdcall * AddProc)(HANDLE );
      HINSTANCE hInst;
      hInst=LoadLibrary("ntdll.dll");
      AddProc m_Unlock=(AddProc)GetProcAddress(hInst,"NtResumeProcess");//获取Dll的导出函数
      AddProc m_Lock=(AddProc)GetProcAddress(hInst,"NtSuspendProcess");//获取Dll的导出函数
  • 相关阅读:
    Jquery-EasyUI学习2~
    IIS——发布网站
    一致性哈希算法
    利用ZTree链接数据库实现 [权限管理]
    Form表单提交的简要方式
    Redis学习之5种数据类型操作、实现原理及应用场景
    redis对比其余数据库
    ZooKeeper概述(转)
    Zookeeper-Zookeeper可以干什么
    Java内存分配及变量存储位置实例讲解
  • 原文地址:https://www.cnblogs.com/zkkkkkky/p/4423006.html
Copyright © 2011-2022 走看看