读书人

高分一个有关问题小弟我的程序异常在

发布时间: 2012-02-09 18:22:27 作者: rapoo

高分求助一个问题,我的程序错误在什么地方?
窗体:

  Option Explicit
Public g_bDone As Boolean
Public g_strTitle As String

Private Sub Form_Load()
Me.Show
End Sub

Private Sub Form_Unload(Cancel As Integer)
Dim hThread, lpThreadID As Long
g_bDone = False
g_strTitle = "Close "
hThread = CreateThread(ByVal 0&, ByVal 0&, AddressOf HookInputBoxThread, ByVal 0&, 0, lpThreadID)
If InputBox(vbCrLf + "Please input the correct Password! " + vbCrLf + "Operator can 't close it! ", g_strTitle) = "ictadmin " Then

Unload Me
Else
MsgBox "The Password isn 't correct! ", 0 + 64, "Warning "
Cancel = 1
End If

End Sub


模块:

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 Declare Function SetForegroundWindow Lib "user32 " (ByVal hwnd As Long) As Long
Public Declare Function SetFocusAPI& Lib "user32 " Alias "SetFocus " (ByVal hwnd As Long)
Public Declare Function SetWindowPos Lib "user32 " (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long


Public Declare Function SetFocus Lib "user32.dll " (ByVal hwnd As Long) As Long

Public Const EM_SETPASSWORDCHAR = &HCC
Public Const HWND_TOPMOST& = -1
Public Const SWP_NOSIZE& = &H1
Public Const SWP_NOMOVE& = &H2

Public g_bDone As Boolean
Public g_strTitle As String

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

问题:

程序调试运行时没错,为什么生成exe文件后程序关闭时就报错自动关闭呢?



[解决办法]
生成P代码看看

读书人网 >VB

热点推荐