Hi
I want to disable the Autorun-Feature in VB. Unfortunately I get always the system crashes everytime I want to give back control to the system via CallNextHookEx().
Many Thanks for your help
The Code I use:
**************************************
Form :
program started via a button
**************************************
Private Sub Command1_Click()
bintAutoRunMsgNum = RegisterWindowMessage("QueryCancelAutoPlay")
Call HookSystem
End Sub
Private Sub Form_Unload(Cancel As Integer)
Call UnHookSystem
End Sub
*****************************************
Module1
*****************************************
Option Explicit
Public Sub HookSystem()
' WH_GETMESSAGE = 3
If gbhhook <> 0 Then UnHookSystem gbhhook = SetWindowsHookEx(3, AddressOf GetMsgProc, App.hInstance, App.ThreadID)
End Sub
Public Sub UnHookSystem()
If gbhhook <> 0 Then gbhhook = UnhookWindowsHookEx(gbhhook)
gbhhook = 0
End Sub
Public Function GetMsgProc(ByVal ncode As Integer, ByVal wParam As Long, ByVal lParam As Long) As Long
' do nothing at the moment
Call CallNextHookEx(gbhhook, ncode, ByVal wParam, ByVal lParam)
End Function
****************************************
Module 2 (Defnitions)
**************************************
Public Declare Function RegisterWindowMessage Lib "user32.dll" _
Alias "RegisterWindowMessageA" (ByVal lpString As String) As Integer
Public Declare Function SetWindowsHookEx Lib "user32.dll" Alias "SetWindowsHookExA" _
(ByVal idHook As Integer, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Public Declare Function UnhookWindowsHookEx Lib "user32.dll" (ByVal hHook As Long) As Long
Public Declare Function CallNextHookEx Lib "user32.dll" (ByVal hHook As Long, _
ByVal ncode As Integer, ByVal wParam As Integer, lParam As Any)
Public Declare Function GetCurrentThreadId Lib "Kernel32.dll" () As Long
Global gbintAutoRunMsgNum As Integer
Global gbhhook As Long
Marci Sarwan ([email protected])
