Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Как нажать кнопку в чужом окне, зная ее дескриптор


Автор: ViterAlex 8.10.2009, 17:56
Знаю дескриптор (handle) кнопки в чужом окне (получил через EnumChildWindows). Как мне на нее нажать? Желательно не делая окно активным

Автор: Pilger 8.10.2009, 19:30
http://forum.vingrad.ru/forum/topic-222145/anchor-entry1592338/0.html

Автор: ViterAlex 8.10.2009, 23:41
Спасибо, разобрался. Только в той теме у человека были проблемы, вероятно потому, что использовалась функция SendMessage. Нужно посылать сообщение через PostMessage:
Код
'Объявление функции PostMessage
<DllImport("user32.dll", SetLastError:=True)> _
  Public Shared Function PostMessage(ByVal hwnd As IntPtr, ByVal wMsg As UInteger, ByVal wParam As UInteger, ByVal lParam As UInteger) As Integer
  End Function

'Объявление констант
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202

'Использование функции PostMessage
PostMessage(hbtn, WM_LBUTTONDOWN, 1, 0)
PostMessage(hbtn, WM_LBUTTONUP, 1, 0)

Чтобы была доступна функция DllImport, нужно в класс импортировать пространство имен System.Runtime.InteropServices. Такое объявление функции, в отличие от Declare, позволяет корректно обрабатывать все запросы.

Автор: Pilger 9.10.2009, 15:20
Возможно. С нажатием проблем не возникало, но за инфо спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)