如题!
解决方案 »
- 数据报表输出的问题,请教各位高手。
- 高手请进,程序在IDE下执行无误,但编译后执行失败,主要是API调用失败
- 基础问题
- 像vb自己的工具栏的窗体怎么做啊!好象它可以随便拖放的?同时也可以成为mdi窗体,也可以在菜单栏下面
- 用upd连接时出现“连接由远程端重新设置“的错误,如何解决?----高分!!
- ◆◆◆◆◆在VB 中怎样查看表的属性?????
- 寻短期项目**免费帮你完成**.
- VB中使用API函数的疑问???????还请各位大虾们帮忙
- vb问题(maybe easy to you)
- 关于MTS
- 如何让该文本框只接收文字,其余输入报错。我知道用if语句判断,我想知道具体的代码。
- 一个保存时的小问题
-----------------------------------------------------
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 = &HCCPublic 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-----------------测试代码form1.frm----------------
Private Sub Command1_Click()
Dim hThread As Long, lpThreadID As Long
g_bDone = False
g_strTitle = "测试程序"
hThread = CreateThread(ByVal 0&, ByVal 0&, AddressOf HookInputBoxThread, ByVal 0&, 0, lpThreadID)
Dim s As String
s = InputBox("请输入数据", g_strTitle)
MsgBox s
End Sub----------------------------------------
2.用Hook可以实现,比较麻烦,而且不是很稳定。代码如下:----------------------Module1.bas---------------
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 = &HCCPublic 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-----------------------测试代码form1.frm--------------
Private Sub Command1_Click()
Dim hThread As Long, lpThreadID As Long
g_bDone = False
g_strTitle = "测试程序"
hThread = CreateThread(ByVal 0&, ByVal 0&, AddressOf HookInputBoxThread, ByVal 0&, 0, lpThreadID)
Dim s As String
s = InputBox("请输入数据", g_strTitle)
MsgBox s
End Sub------------------------------------------------------------------------------
设置 PASSWORDCHAR 为 *
设置 PASSWORDCHAR 为 *
设置 PASSWORDCHAR 为 *
设置 PASSWORDCHAR 为 *
设置 PASSWORDCHAR 为 *
设置 PASSWORDCHAR 为 *
设置 PASSWORDCHAR 为 *
设置 PASSWORDCHAR 为 *
设置 PASSWORDCHAR 为 *
...