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])