高手看看,我很苦恼,憋我半天了!
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private 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
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Dim cwnd As Long, mwnd As Long
Private Const WM_SETTEXT = &HC
Private Sub Command1_Click()
mwnd = FindWindow(vbNullString, "12345") '可以得到句柄值,wnd有返回值
cwnd = FindWindowEx(mwnd, 0, vbNullString, "Text1") '得不到句柄,wnd返回为0
ccwnd = FindWindowEx(mwnd, 0, vbNullString, "取消")
Print mwnd
Print cwnd
Print ccwnd
Dim iResult As Long
iResult = SendMessage(cwnd, WM_SETTEXT, 1, "victory")
End SubPrivate Sub Form_Load()
Shell ("D:\Program Files\Microsoft Visual Studio\VB98\project\b\工程1.exe")
End Sub
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private 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
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Dim cwnd As Long, mwnd As Long
Private Const WM_SETTEXT = &HC
Private Sub Command1_Click()
mwnd = FindWindow(vbNullString, "12345") '可以得到句柄值,wnd有返回值
cwnd = FindWindowEx(mwnd, 0, vbNullString, "Text1") '得不到句柄,wnd返回为0
ccwnd = FindWindowEx(mwnd, 0, vbNullString, "取消")
Print mwnd
Print cwnd
Print ccwnd
Dim iResult As Long
iResult = SendMessage(cwnd, WM_SETTEXT, 1, "victory")
End SubPrivate Sub Form_Load()
Shell ("D:\Program Files\Microsoft Visual Studio\VB98\project\b\工程1.exe")
End Sub
这样写可以吗?
另一个窗口中文本框显示的是 “,?”和“=”
郁闷啊
Option ExplicitPrivate Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private 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
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Dim Cwnd As Long, mwnd As LongPrivate Const WM_SETTEXT = &HC&
Private Sub Command1_Click()
Dim mwnd As Long, Cwnd As Long, CCwnd As Long
mwnd = FindWindow(vbNullString, "Form1") '可以得到句柄值,wnd有返回值
Cwnd = FindWindowEx(mwnd, ByVal 0&, "ThunderRT6TextBox", vbNullString) '得不到句柄,wnd返回为0
CCwnd = FindWindowEx(mwnd, ByVal 0&, "ThunderRT6CommandButton", vbNullString)
Print mwnd
Print Cwnd
Print CCwnd
Dim iResult As Long, cText As String
cText = "victory"
iResult = SendMessage(Cwnd, WM_SETTEXT, Len(cText), ByVal cText)
cText = "显示取消没有"
iResult = SendMessage(CCwnd, WM_SETTEXT, Len(cText), ByVal cText)
End SubPrivate Sub Form_Load()
Form2.Show
Shell ("D:\Microsoft Visual Studio\VB98\工程1.exe"), vbNormalFocus
End Sub
Private 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
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Dim Cwnd As Long, mwnd As LongPrivate Const WM_SETTEXT = &HC&
Private Sub Command1_Click()
Dim mwnd As Long, Cwnd As Long, CCwnd As Long
mwnd = FindWindow(vbNullString, "12345") '可以得到句柄值,wnd有返回值
Cwnd = FindWindowEx(mwnd, ByVal 0&, "ThunderRT6TextBox", vbNullString) '得不到句柄,wnd返回为0
CCwnd = FindWindowEx(mwnd, ByVal 0&, "ThunderRT6CommandButton", vbNullString)
Print mwnd
Print Cwnd
Print CCwnd
Dim iResult As Long, cText As String
cText = "victory"
iResult = SendMessage(Cwnd, WM_SETTEXT, Len(cText), ByVal cText)
cText = "显示取消没有"
iResult = SendMessage(CCwnd, WM_SETTEXT, Len(cText), ByVal cText)
End SubPrivate Sub Form_Load()
Form1.Show
Shell ("D:\Microsoft Visual Studio\VB98\project\b\工程1.exe"), vbNormalFocus
End Sub
'unicode版的哟
Private Declare Function SendMessage Lib "user32" Alias "SendMessageW" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Sub MySetWindowText(ByVal hwnd As Long, ByVal Text As String)
Dim iResult As Long
iResult = SendMessage(hwnd, WM_SETTEXT, 0, ByVal StrPtr(Text))End Sub
Private Sub Command1_Click()
MySetWindowText Text1.hwnd, "vic胜利"
End Sub