高分求助一个问题,我的程序错误在什么地方?
窗体:
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代码看看