Управление чужим приложением через SendMessage - VB
Формулировка задачи:
Итак, суть проблемы:
Есть приложение для работы с реле по USB. Исходники приложения поставщик отказался предоставить, а управлять реле надо несколько умнее чем тыкая 4 кнопке на форме.
Написал небольшую программку которая делает все расчеты но столкнулся с проблемой.
Не могу получить хандлы кнопок с окна из которого переключаются реле.
используя WinDowzer автор ManHunter я подсмотрел след, названия и тип кнопок одинаковые, это раз.
Второе они лежат в GrupBox который лежит в Panel которая находится в окне, это два.
Функции FindWindow нахожу окно, FindWindowEx - панель в окне, а как далее не пойму, ни кнопки ни GrupBox не находит.
Клас кнопок "TButton", название "Установить в 1".
Решение задачи: «Управление чужим приложением через SendMessage»
textual
Листинг программы
Option Explicit Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExW" (ByVal hWndParent As Long, ByVal hWndChildAfter As Long, ByVal lpClassName As Long, ByVal lpWindowName As Long) As Long Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Private Const GW_CHILD As Long = 5 Private Const GW_HWNDNEXT As Long = 2 Private Sub Form_Load() Dim TMain As Long Dim TPanel As Long Dim TGroup As Long Dim btn(4) As Long TMain = FindWindowEx(0, 0, StrPtr("TMain"), StrPtr("USB датчик температуры - Мастер Кит - BM1707")) If TMain = 0 Then Exit Sub TPanel = FindWindowEx(TMain, 0, StrPtr("TPanel"), 0) If TPanel = 0 Then Exit Sub TGroup = FindWindowEx(TPanel, 0, StrPtr("TGroupBox"), StrPtr(" Управление каналами ")) If TGroup = 0 Then Exit Sub ' // Записать btn(0) = GetWindow(TGroup, GW_CHILD) ' // Нижняя "Сбросить в 0" btn(1) = GetWindow(btn(0), GW_HWNDNEXT) ' // Верхняя "Сбросить в 0" btn(2) = GetWindow(btn(1), GW_HWNDNEXT) ' // Нижняя "Установить в 1" btn(3) = GetWindow(btn(2), GW_HWNDNEXT) ' // Верхняя "Установить в 1" btn(4) = GetWindow(btn(3), GW_HWNDNEXT) Debug.Print Hex(btn(0)) Debug.Print Hex(btn(1)) Debug.Print Hex(btn(2)) Debug.Print Hex(btn(3)) Debug.Print Hex(btn(4)) End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д