'------------------- 模块----------------------
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
'Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function GetDlgItem Lib "user32" (ByVal hDlg As Long, ByVal nIDDlgItem As Long) As Long
Public Declare Function CreateThread Lib "kernel32" (ByVal lpThreadAttributes As Any, ByVal dwStackSize As Long, ByVal lpStartAddress As Long, ByVal lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadID As Long) As Long
Public Const EM_SETPASSWORDCHAR = &HCC
Public g_bDone As Boolean
Public g_strTitle As String
Public hThread As Long, lpThreadID As Long
'-------------------inputbox过程----------------------
Public Sub HookInputBoxThread()
    Do Until g_bDone
        Dim h As Long, hText As Long
        h = FindWindow("#32770", g_strTitle)
        If h <> 0 Then
            hText = GetDlgItem(h, &H1324)
            If hText <> 0 Then
                SendMessage hText, EM_SETPASSWORDCHAR, Asc("*"), 0
                g_bDone = True
            End If
        End If
    Loop
End Sub
   
'------------窗体-------------
Private Sub cmdpassword_Click()
   '-------------------------其它功能------------------
                       g_bDone = False
    g_strTitle = "输入权限密码"
    hThread = CreateThread(ByVal 0&, ByVal 0&, AddressOf HookInputBoxThread, ByVal 0&, 0, lpThreadID)
                          ab = InputBox("请在下面输入您的密码:", g_strTitle, "*")
   '-------------------------其它功能------------------
end sub
程序运行环境:win2k,98,xp三种.
以上代码放在程序里就会导致KERNEL32.DLL无效页错误.请问是什么原因,请大侠帮忙解决!或者是其它dll问题,比如说vba.dll呀,很多.不知道怎么解决,我又不想放弃这个模块,而且是只有执行到这些代码的时候才会出错!
请大侠帮忙看看,谢谢!