代码如下:

一个窗体文件FORM1.FRM,一个模块

窗体代码开始:(保存为FORM1.FRM)  
VERSION 5.00
Begin VB.Form Form1 
     Caption           =     "CTRL +ALT + DEL"
     ClientHeight      =     735
     ClientLeft        =     60
     ClientTop         =     450
     ClientWidth       =     4155
     LinkTopic         =     "Form1"
     ScaleHeight       =     735
     ScaleWidth        =     4155
     StartUpPosition =     3    '窗口缺省
     Begin VB.CommandButton Command3 
        Caption           =     "启用"
        Height            =     495
        Left              =     2160
        TabIndex          =     1
        Top               =     120
        Width             =     1695
     End
     Begin VB.CommandButton Command1 
        Caption           =     "禁用"
        Height            =     495
        Left              =     240
        TabIndex          =     0
        Top               =     120
        Width             =     1695
     End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private Sub Command1_Click()
Dim i As Boolean
i = LockKeyboard(True)
If i = True Then Me.Caption = i

Getkeykoardok
End Sub

Private Sub Getkeykoardok()
Dim i As Boolean
i = GetKeyboardState
If i = True Then Me.Caption = "CTRL +ALT + DEL已禁用" Else Me.Caption = "CTRL +ALT + DEL已启用"

End Sub

Private Sub Command3_Click()
Dim i As Boolean
i = LockKeyboard(False)
If i = True Then Me.Caption = i
Getkeykoardok

End Sub

 

'窗体代码结束:
'///

模块代码:(保存为Module1.BAS)  
Attribute VB_Name = "Module1"
Option Explicit
'注意,以下所有双版本的API均声明成了 UNICODE 版。 并且许多地方与VB的API浏览器生成的代码有所不同。
Private Declare Function OpenProcess Lib "kernel32" (ByVal _
dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal _
dwProcessId As Long) As Long
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal _
hProcess As Long, ByVal lpBaseAddress As Long, lpBuffer As Any, _
ByVal nSize As Long, _
lpNumberOfBytesWritten As Long) As Long
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal _
hProcess As Long, ByVal lpBaseAddress As Long, lpBuffer As Any, _
ByVal nSize As Long, _
lpNumberOfBytesWritten As Long) As Long
Private Declare Function GlobalAddAtom Lib "kernel32" Alias _
"GlobalAddAtomW" (ByVal lpString As Long) As Integer
Private Declare Function GlobalDeleteAtom Lib "kernel32" (ByVal _
nAtom As Integer) As Integer
Private Declare Function GlobalFindAtom Lib "kernel32" Alias _
"GlobalFindAtomW" (ByVal lpString As Long) As Integer
Private Const TH32CS_SNAPPROCESS = 2
Private Type PROCESSENTRY32W
      dwSize                As Long
      cntUsage              As Long
      h32ProcessID          As Long '      // this process
      th32DefaultHeapID     As Long '
      h32ModuleID           As Long '      // associated exe
      cntThreads            As Long '
      th32ParentProcessID As Long '      // this process's parent process
      pcPriClassBase        As Long '      // Base priority of process'sthreads
      dwFlags               As Long '
      szExeFile(1 To 260) As Integer ' // Path
End Type
Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
Private Declare Function Process32First Lib "kernel32" Alias "Process32FirstW" (ByVal hSnapshot As Long, lpPE As PROCESSENTRY32W) As Long
Private Declare Function Process32Next Lib "kernel32" Alias "Process32NextW" (ByVal hSnapshot As Long, lpPE As PROCESSENTRY32W) As Long
Private Declare Function lstrcmpi Lib "kernel32" Alias "lstrcmpiW" (lpString1 As Integer, ByVal lpString2 As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Private Type LUID
      lowpart       As Long
      highpart      As Long
End Type
Private Type LUID_AND_ATTRIBUTES
          pLuid         As LUID
          Attributes    As Long
End Type
Private Type TOKEN_PRIVILEGES
      PrivilegeCount    As Long
      Privileges        As LUID_AND_ATTRIBUTES
End Type
Private Const PROCESS_ALL_ACCESS          As Long = &H1F0FFF
Private Const TOKEN_QUERY                 As Long = &H8&
Private Const TOKEN_ADJUST_PRIVILEGES     As Long = &H20&
Private Const SE_PRIVILEGE_ENABLED        As Long = &H2
Private Const SE_DEBUG_NAME As String = "SeDebugPrivilege"
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function OpenProcessToken Lib "advapi32.dll" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
Private Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueW" (ByVal lpSystemName As Long, ByVal lpName As Long, lpLuid As LUID) As Long
Private Declare Function AdjustTokenPrivileges Lib "advapi32.dll" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, _
ByVal BufferLength As Long, ByVal PrevState As Long, ByVal N As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32" Alias _
"LoadLibraryW" (ByVal lpLibFileName As Long) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal _
hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function FreeLibrary Lib "kernel32" (ByVal _
hLibModule As Long) As Long
Private Const MEM_COMMIT          As Long = &H1000
Private Const MEM_DECOMMIT        As Long = &H4000
Private Const PAGE_EXECUTE_READWRITE      As Long = &H40
Private Declare Function VirtualAllocEx Lib "kernel32" (ByVal _
ProcessHandle As Long, ByVal lpAddress As Long, ByVal dwSize As _
Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Private Declare Function VirtualFreeEx Lib "kernel32" (ByVal _
ProcessHandle As Long, ByVal lpAddress As Long, ByVal dwSize As _
Long, ByVal dwFreeType As Long) As Long
Private Declare Function CreateRemoteThread Lib "kernel32" (ByVal hProcess As Long, ByVal lpThreadAttributes As Long, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, ByVal lpParameter As Long, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long
Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExW" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const ATOM_FLAG As String = "HookSysKey"
Private Const SHELL_FALG As String = "Winlogon"
Private Const SHELL_CODE_DWORDLEN = 240       '注入代码所占的双字数
Private Const SHELL_CODE_LENGTH = (SHELL_CODE_DWORDLEN * 4) '字节数
Private Const SHELL_FUNCOFFSET = &H26         '注入代码线程函数偏移量
Private mlShellCode(SHELL_CODE_DWORDLEN - 1) As Long
    
Private m_lHookID         As Long               '键盘钩子句柄
'============================================
' 锁定/解锁键盘
' 参数:布尔型,真表示锁定
' 返回:布尔型, 真表示成功
' 注意:非 Ctrl+Alt+Del 键使用普通钩子技术,因此
'         程序在退出时注意要卸载钩子。
'============================================
Public Function LockKeyboard(ByVal bLock As Boolean) As Boolean
      Dim lResult As Long
      Dim lStrPtr    As Long
      lStrPtr = StrPtr(SHELL_FALG)
      lResult = GlobalFindAtom(lStrPtr)
      If lResult = 0 Then
          lResult = InsertAsmCode
          Debug.Assert lResult = 0
          If lResult Then Exit Function
      End If
    
      lStrPtr = StrPtr(ATOM_FLAG)
      lResult = GlobalFindAtom(lStrPtr)
      If bLock Then
          m_lHookID = SetWindowsHookEx(13, AddressOf LowLevelKeyboardProc, App.hInstance, 0)
          If (lResult = 0 And m_lHookID <> 0) Then lResult = GlobalAddAtom(lStrPtr)
          LockKeyboard = (lResult <> 0 And m_lHookID <> 0)
          Debug.Assert LockKeyboard
      Else
          Call UnhookWindowsHookEx(m_lHookID)
          If lResult Then lResult = GlobalDeleteAtom(lResult)
          LockKeyboard = (lResult <> 0)
      End If
End Function
Public Function GetKeyboardState() As Boolean
      GetKeyboardState = GlobalFindAtom(StrPtr(ATOM_FLAG)) <> 0
End Function

Private Function LowLevelKeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
      If nCode >= 0 Then
          '在这里可以加入实际的过滤条件
          LowLevelKeyboardProc = 1
      Else
          LowLevelKeyboardProc = CallNextHookEx(m_lHookID, nCode, wParam, lParam)
      End If
End Function
'----------------------------------------------
' 远程线程插入函数
' 功能:向 Winlogon 进程插入远程线程代码,并执行
' 返回:0 表示成功,非 0 为标准的错误代号(此错误
'         代码为远程线程返回的错误)
'----------------------------------------------
Private Function InsertAsmCode() As Long
      Const WINLOGON As String = "Winlogon.exe"
      Dim hProcess As Long      '远端进程句柄
      Dim hPId      As Long       '远端进程ID
      Dim lResult As Long       '一般返回变量
      Dim pToken    As TOKEN_PRIVILEGES
      Dim hToken    As Long
      Dim hRemoteThread As Long
      Dim hRemoteThreadID As Long
      Dim lDbResult(1) As Long
      Dim lRemoteAddr As Long
    
      '------------------------------------
      '取winlogon进程ID
      '------------------------------------
      hPId = GetProcessIdFromName(WINLOGON)
      If hPId = 0 Then
          Debug.Assert False
          Exit Function
      End If
    
      '------------------------------------
      '提升本进程权限,以取得对winlogon进程操作的许可
      '------------------------------------
      lResult = OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES Or TOKEN_QUERY, hToken)
      Debug.Assert lResult
      lResult = LookupPrivilegeValue(0, StrPtr(SE_DEBUG_NAME), pToken.Privileges.pLuid)
      Debug.Assert lResult
      pToken.PrivilegeCount = 1
      pToken.Privileges.Attributes = SE_PRIVILEGE_ENABLED
      lResult = AdjustTokenPrivileges(hToken, False, pToken, Len(pToken), 0, 0)
      Debug.Assert lResult


VB部分相关文章推荐

※VB快速读取 TextBox 第 N 行的资料

※VB禁止使用 Alt-Tab 或 Ctrl-Alt-Del

※生成迷宫的程序

※另一方法转换大小写

※VB控件注册 - 利用资源文件将dll、ocx打包进exe文件

※VB利用资源文件进行工作

※[转]vb高效编程(优化)

※VB阳历转阴历

※纯VB代码取得硬盘的物理序列号

※VB获得磁盘的文件系统

※做VB的,经常注册和反注册OCX控件和DLL链

※VB从程序中生成Exe文件

※VB6监视/操作剪贴板示例(VB6.0代码)

※VB6里自动提交/自动填表的一种相对通用的方案

※VB移动没有标题的窗体

※VB随机字母的函数

※VB删除带子文件夹和文件的文件夹

※VB怎样屏蔽 Alt+F4键

※VB 隐藏进程

※vb屏蔽文本框点右键时的弹出菜单

※VB手控Combobox的打开或收起

※在VB中INI文件的读写、删除(对中文支持很好)

※vb全局热键的写法(占很少的资源)

※vb取消文本框的粘贴功能

※VB常用文件操作类

※VB获取特殊文件夹

※VB获取windows各常用目录的函数(模块)

※VB生成太极图

※VB:常用内部函数大全,你会了几个呢?

※vb中SendMessage函数

※精简VB程序的代码

※VB:将数字转换为大写中文

※VB:设定 MsgBox 在若干时间之后若无回应则自动关闭

※VB:读取及设定NumLock/CapsLock/ScrollLock的值

※VB:您知道 Mid$ 函量可以放在 '=' 的左方吗

※VB后台获得按键,并执行自己的函数(非钩子及热键)

※VB:将短文件名格式转成长文件名

※在vb中使用Iphlpapi.dll获取网络信息(上)

※在vb中使用Iphlpapi.dll获取网络信息(下)


更多精彩>>>

VB禁用CTRL +ALT + DEL(1)相关推荐

  1. VB禁用CTRL +ALT + DEL (2)

    程序代码: '打开winlogon进程 '------------------------------------ hProcess = OpenProcess(PROCESS_ALL_ACCESS, ...

  2. 禁用Ctrl+alt+del

     XP中,Ctrl+Alt+Del可以打开任务管理器(偶发现Ctrl+Shift+Esc也可以),关于禁用这个热键,网上是见了多了,有这几种方法: 1.通过注册表禁用,网上大多数用此方法,打开任务 ...

  3. 禁用Ctrl+Alt+Del最有效的方法

    禁用Ctrl+Alt+Del最有效的方法 Ctrl+Alt+Del可以打开任务管理器(Ctrl+Shift+Esc也可以).如何禁用这个热键,网上有很多方法: 通过注册表禁用,网上大多数用此方法,打开 ...

  4. 1、网上找的win7 hook winlogon实现禁用CTRL+ALT+DEL

    转载自互联网:仅修改了软件打开自动屏蔽和隐藏窗体. 保存成相应文件,可以用VB6直接编译出exe,win7下依赖于winlogon的快捷键会被屏蔽:        若要恢复,可选开启图形界面后,点击释 ...

  5. linux 禁用 ctrl+alt+del 重启系统

    经常看到很多客户正式的环境还没有禁用CTRL-ALT-DEL重启系统,这个快捷键非常危险,尤其是正式环境,稍不留神按了这3个键,等着吧! 建议大家养成好的习惯,装完系统后把基础配置做好,比如禁用这个重 ...

  6. Windows XP系统中如何屏蔽 Ctrl+Alt+Del、Alt+Tab以及Ctrl+Esc键序列

    Windows XP系统中如何屏蔽 Ctrl+Alt+Del.Alt+Tab以及Ctrl+Esc键序列 编译/northtibet 关键字:Ctrl+Alt+Del,Alt+Tab,Ctrl+Esc, ...

  7. 转:Windows XP系统中如何屏蔽 Ctrl+Alt+Del、Alt+Tab以及Ctrl+Esc键序列

    此处下载源代码:(http://download.csdn.net/source/2091219) 对于用过Windows的人,几乎没有人不知道Ctrl+Alt+Del组合键,尤其是在使用经常死机的W ...

  8. Windows 技术篇-设置电脑启用或禁用开机按Ctrl+Alt+Del解除锁定

    因为博主的电脑有一个键位坏了,每次开机,会自动的输入密码.所以就想到了开机后加个 Ctrl+Alt+Del 来解决问题. 启用或禁用方式如下: 首先,通过 Win+R 进入运行界面,然后输入 gepd ...

  9. Windows Server 2003摆脱了恼人的Ctrl+Alt+Del

    问:据说Windows Server 2003已经使用自动登录摆脱了恼人的Ctrl+Alt+Del的提示,但在按下WIN+L组合键锁定系统或使用了带密码保护的屏保时,它还是会冒出来.请问我有办法根除它 ...

最新文章

  1. 51单片机系列命名规则
  2. Gradle学习目录
  3. php中的point用法,php strnatcmp()函数的用法总结
  4. 文件下载时,文件名乱码问题
  5. 如何快速构建嵌入式全栈知识体系?
  6. webService调用模式比较
  7. 计算机常用技巧及快捷键
  8. 使用Spark core和SparkSQL的窗口函数分别实现分组取topN的操作
  9. 深入浅出的mysql第三版和第二版的区别_1.高性能MySQL(第3版) 2. 深入浅出MySQL 合集 完整版 高清...
  10. c# mysql varbinary_c# – 从数据库读取SQL Varbinary Blob
  11. 第一章 空间解析几何与向量代数(1)
  12. 项目管理商业文件(第一章)
  13. 电源平面Z阻抗参数的提取是否需要设置VRM,以及Port 参考阻抗对仿真结果的影响
  14. beautifulsoup html内容_用python3教你任意Html主内容提取
  15. windows无法连接到打印机?三个方法连接打印机(Win10系统)
  16. python 解决 0-1 二维背包问题
  17. 【历史上的今天】12 月 31 日:千年虫问题;DNA 计算之父出生;微机先驱 Cromemco 成立
  18. 无心剑七绝《梅西封王》
  19. Android多媒体支撑库OpenCore视频硬件加速
  20. 使用EXCEL设置“下拉菜单”选项功能

热门文章

  1. 2019 世界读书日,让程序员疯狂的 13 本豆瓣高分技术书!
  2. 为什么说要注销 QQ 的,都是君子呢?
  3. 生物学家、钢管舞、全栈工程师,女程序员如何活得漂亮
  4. 第 8 章 查找算法
  5. Linux常用文件拷贝方式:scp,rsync,expect
  6. linux下的svn搭建,Ubuntu 14.04 下搭建SVN服务器 svn://
  7. java 锁表后事务提交_关于synchronized锁在Spring事务中进行数据更新同步,仍出现线程安全问题...
  8. python实现表格_python 实现绘制整齐的表格
  9. oracle导入dmp文件数据,dmp文件导入Oracle数据库
  10. 计算机基础知识的知识要点,计算机基础知识要点