Option Explicit
Public Const WM_COMMAND = &H111
Public Const WM_SETTEXT = &HC
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 PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'=======================================================================
' Method : Main
' Author : 이 석재(http://cafe.naver.com/xlsvba/831)
' LA Time : 2008-04-05 16:21
' Purpose : WM_SETTEXT, WM_COMMAND메세지를 이용하여 다른 응용프로그램을 컨트롤하는예제
'=======================================================================
Sub Main()
Dim hPrt As Long
Dim hTxt As Long
Dim hCmd As Long
'## 부모윈도우 핸들값 취득
hPrt = FindWindow("ThunderRT6FormDC", "테스트")
If hPrt <> 0 Then
hTxt = FindWindowEx(hPrt, ByVal 0&, "ThunderRT6TextBox", vbNullString) '## 텍스트박스 핸들값 취득
hCmd = FindWindowEx(hPrt, ByVal 0&, "ThunderRT6CommandButton", "메세지") '## 버튼 핸들값 취득
'## SendMessage(해당윈도우 핸들,WM_SETTEXT, 0&, ByVal 입력값)
Call SendMessage(hTxt, WM_SETTEXT, 0&, ByVal "aaa")
'## PostMessage(부모윈도우 핸들,WM_COMMAND, 0&, 자신윈도우 핸들)
Call PostMessage(hPrt, WM_COMMAND, 0&, hCmd)
Else
MsgBox "급하기두 하셔라~~ Test.exe부터 실행하셔야죵...^^"
End If
End Sub