利用hook禁止系统关机的程序,在线等.急用.
小弟初学api,但有一作业今天晚上急要,所有请大家帮忙解决.
'窗体
Private Sub Form_Load()
Call EnableKBDHook
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call UnHookKBD
End Sub
'模板
Option Explicit
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
Public 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
Public Declare Function ExitWindowsEx Lib "user32" _
(ByVal uFlags As Long, ByVal dwReserved As Long) As Long
Public Const WH_SYSMSGFILTER = 6
Public Const EWX_SHUTDOWN = 1
Public hHook As Long
Public hnexthookproc As Long
Public Const WH_CALLWNDPROC = 4
Public Sub UnHookKBD()
If hnexthookproc <> 0 Then
UnhookWindowsHookEx hHook
hHook = 0
End If
End Sub
Public Function EnableKBDHook()
If hHook <> 0 Then
Exit Function
End If
hHook = SetWindowsHookEx(WH_CALLWNDPROC, AddressOf _
WindowProc, App.hInstance, 0)
End Function
Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If (uMsg = WM_QUERYENDSESSION) Then
WindowProc = 0
WindowProc = CallWindowProc(hHook, hw, uMsg, wParam, lParam)
Else
WindowProc = CallWindowProc(hHook, hw, uMsg, wParam, lParam)
End If
End Function
怎么可以实现让我的系统无法关机.
先谢谢各位了.里面的错误尽管指出,不胜感激.