50分求助,如何让程序屏蔽XP系统的热键,像CTRL+ALT+DEL

如风 2006-11-21 11:55:02
网上找了一些,都没办法解决,谁来帮帮我````
...全文
220 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenhui530 2006-11-21
  • 打赏
  • 举报
回复
楼上的完全错误

模块:
Option Explicit

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId 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
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Private Const HC_ACTION = 0
Private Const WM_KEYDOWN = &H100
Private Const WM_KEYUP = &H101
Private Const WM_SYSKEYDOWN = &H104
Private Const WM_SYSKEYUP = &H105
Private Const VK_TAB = &H9
Private Const VK_CONTROL = &H11
Private Const VK_ESCAPE = &H1B

Public Const WH_KEYBOARD_LL = 13
Private Const LLKHF_ALTDOWN = &H20

Private Type KBDLLHOOKSTRUCT
vkCode As Long
scanCode As Long
flags As Long
time As Long
dwExtraInfo As Long
End Type

Dim p As KBDLLHOOKSTRUCT

Public Function LowLevelKeyboardProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim fEatKeystroke As Boolean

If (nCode = HC_ACTION) Then
If wParam = WM_KEYDOWN Or wParam = WM_SYSKEYDOWN Or wParam = WM_KEYUP Or wParam = WM_SYSKEYUP Then
CopyMemory p, ByVal lParam, Len(p)
fEatKeystroke = _
((p.vkCode = VK_TAB) And ((p.flags And LLKHF_ALTDOWN) <> 0)) Or _
((p.vkCode = VK_ESCAPE) And ((p.flags And LLKHF_ALTDOWN) <> 0)) Or _
((p.vkCode = VK_ESCAPE) And ((GetKeyState(VK_CONTROL) And &H8000) <> 0)) Or _
((p.vkCode = 91) Or (p.vkCode = 92) Or (p.vkCode = 93) Or (p.vkCode = 95) Or (p.vkCode = 255) Or (((p.flags And LLKHF_ALTDOWN) <> 0) And (p.vkCode = 115)))
End If
End If

If fEatKeystroke Then
LowLevelKeyboardProc = 1
Else
LowLevelKeyboardProc = CallNextHookEx(0, nCode, wParam, ByVal lParam)
End If
End Function



窗体

private hhkLowLevelKybd as long
Private Sub Form_Load()
hhkLowLevelKybd = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf LowLevelKeyboardProc, App.hInstance, 0)
End Sub



Private Sub Form_Unload(Cancel As Integer)
If hhkLowLevelKybd Then UnhookWindowsHookEx hhkLowLevelKybd
End Sub
feiyun0112 2006-11-21
  • 打赏
  • 举报
回复
vb只能做到节获本程序内的按键

你的要求只能用 VC 啦

*****************************************************************************
欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码)
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
chenhui530 2006-11-21
  • 打赏
  • 举报
回复
哎~~楼主那个东西我用过要把任务栏隐藏了不好用的
hdhreg 2006-11-21
  • 打赏
  • 举报
回复
QQ 95419145
如风 2006-11-21
  • 打赏
  • 举报
回复
还没收到呢,
如果方便加我QQ15345566,以后有问题也好请教....
闷,调试弄的没键盘了,重启下
hdhreg 2006-11-21
  • 打赏
  • 举报
回复
以发。。请查收。。。
cangwu_lee 2006-11-21
  • 打赏
  • 举报
回复
我还是不玩了,上次整那个整点休息的程序,调试的时候,迫不得已好几次强关机——按住电源开关关机。

如风 2006-11-21
  • 打赏
  • 举报
回复
hdhreg()谢谢,发到我邮箱:rufeng6371@163.com

非常感谢你们的帮忙````
chenhui530 2006-11-21
  • 打赏
  • 举报
回复
http://www.aguoge.com/show.htm?id=18

本来就可以也是VB的代码
hdhreg 2006-11-21
  • 打赏
  • 举报
回复
楼主要我可以发一个给你。。。
hdhreg 2006-11-21
  • 打赏
  • 举报
回复
我以前也遇到过。。, 后来用了YF的OCX
如风 2006-11-21
  • 打赏
  • 举报
回复
这个文章看过了````主要是看不明白``
如风 2006-11-21
  • 打赏
  • 举报
回复
chenhui530(陈辉) :
代码真的可以屏蔽一些热键,但CTRL+ALT+DEL好像不能屏蔽掉.....
chenhui530 2006-11-21
  • 打赏
  • 举报
回复
呵呵不好意思没看明白
这个VB也行
http://www.aguoge.com/show.htm?id=18
Alt键使用十二招 1、激活*作命令:按下Alt键可以激活活动窗口的菜单栏,使菜单栏的第一个菜单成为高亮条,而按下Alt键和一个字母就可以激活这个字母所代表的菜单项,如按下Alt+F就可以激活当前窗口的“文件(File)”菜单。此外,在对话框中,同时按下Alt键和带下划线的字母则可以选定该选项并执行相应的操作。   2、终止某一进程:按下CtrlAltDel组合键即可弹出一个“关闭程序”对话框,选取某一进程,然后点击“结束任务”即可快速终止该进程。而再次按下CtrlAltDel组合键则可重新启动计算机。   3、 弹出下拉列表:在对话框中,可以通过Alt+向下箭头键来弹出所选的下拉列表,以免去移动鼠标寻找并点击列表框下箭头按钮之苦。   4、快速查看属性:按下Alt+Enter组合键或在按住Alt键的同时鼠标左键双击某对象(如资源管理器右边窗口中的文件夹、文件、桌面上的图标等,左边窗口中的文件夹不行),则可快速打开其“属性”对话框。其作用相当于点鼠标右键,并选取“属性”。   5、切换DOS窗口:按下Alt+Enter组合键可以在窗口和全屏幕方式下切换 MS-DOS。   6、 万能抓图热键:在运行游戏或其它应用软件中,当屏幕上出现精美的画面时按下Alt+PrintScreen组合键,就可以把当前活动窗口或对话框的内容拷贝至剪贴板,然后调用“画笔”或其它绘图程序,选取“编辑”菜单中的“粘贴”项,即可调出一幅漂亮的画面来。   7、关闭应用程序:按下Alt+F4键可以最快的方式关闭任何应用程序,而不用在文件菜单或工具条中寻找并单击“退出”或“关闭”。   8、切换应用程序:按住Alt键不放,再连续按下Tab键则可以在一个对话框中显示出当前已经运行的所有程序的图标和当前激活的程序的图标及其名称,只要释放Alt键便可以立刻切换到该应用程序中,称之为“冷切换”。   9、打开控制选单:在应用程序中,按下Alt+空格键可以直接打开系统控制选单。   10、 撤消上步操作:在Windows 98的各个对话框中,凡是对编辑框的*作都可以通过Alt+Backspace键来撤消,其效果和Ctrl+Z完全一样。该功能同样适用于微软的各字处理软件,如记事本、书写器、WORD等。另外,也可用该组合键来撤消文件移动或重命名等文件*作。   11、切换辅助选项:对需要使用辅助选项快捷键的特定用户来说,Alt键同样可以助一臂之力。比如,按下左Alt+左Shift+Print Sscreen键可切换高对比度开关;按下左Alt +左Shift + Num Lock 键可切换鼠标键开关。   12、在Word中:选择文本时,如果先按下Alt键再拖动鼠标,则为列选择方式(否则为行选择方式);在拖动标尺或表格线时,无法看出其准确的数据,但如果先按下Alt键再拖动或点击,则可获得精确的数据。 全面提速Windows XP Windows XP现在已经相当普及了,在使用它的过程中,你是否感觉在速度上很多地方还没有Windows 9x系统快呢?比如访问网上邻居、开机关机等,下面我们就来逐个提升它们的速度。

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧