Послать сообщение элементу управления в другую программу зная его хендл - VB
Формулировка задачи:
Доброго дня суток всем
Разбираюсь с управлением внешней программой.
Разобрался с заполнением текстовых полей, нажатием на кнопки (опции тоже подчиняются)
Не могу справиться с TUpDown
Окно нашел. Какие ему посылать сообщения для управления значением?
Решение задачи: «Послать сообщение элементу управления в другую программу зная его хендл»
textual
Листинг программы
Option Explicit 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 Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWndParent As Long, ByVal hWndChildAfter As Long, ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Private Const GW_HWNDNEXT As Long = 2 Private Const WM_USER = &H400 Private Const UDM_SETPOS32 = WM_USER + 113 Private Const UDM_GETPOS32 = WM_USER + 114 Private Const WM_SETTEXT As Long = &HC Private Sub Form_Load() Dim hwnd As Long hwnd = FindWindowEx(0, 0, "TFormSaveOption", vbNullString) hwnd = FindWindowEx(hwnd, 0, "TGroupBox", "Save format") hwnd = FindWindowEx(hwnd, 0, "TUpDown", vbNullString) SetArbitraryValue hwnd, 0 End Sub Private Function SetArbitraryValue(ByVal hWndUpDown As Long, _ ByVal Value As Long) As Long Dim hwndTxt As Long hwndTxt = GetWindow(hWndUpDown, GW_HWNDNEXT) SendMessage hWndUpDown, UDM_SETPOS32, 0, ByVal Value Value = SendMessage(hWndUpDown, UDM_GETPOS32, 0, ByVal 0&) SendMessage hwndTxt, WM_SETTEXT, 0, ByVal CStr(Value) End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д