Faran Saleem Ответов: 1

Получить дескриптор нажатия кнопки с помощью автоматизации пользовательского интерфейса


Всем привет,

Я управляю приложением WPF из другого приложения windows с помощью автоматизации пользовательского интерфейса.

Теперь я знаю, как нажать кнопку через UI automation (через Invoke control), но давайте скажем, что если я нажимаю какую-то диалоговую кнопку вручную в приложении WPF, то как я узнаю, была ли кнопка нажата внутри приложения Windows Form?

Короче говоря, я хочу получить дескриптор щелчка кнопки после того, как он был нажат внутри приложения windows form, откуда я управляю приложением wpf.

Что я уже пробовал:

Я нажал кнопку через модель автоматизации пользовательского интерфейса, но как сделать ручку

1 Ответов

Рейтинг:
0

Thomas Daniels

Чтобы найти ручку кнопки, вы можете использовать FindWindowEx:
Функция FindWindowExA (winuser.h) | Microsoft Docs[^]
pinvoke.net: FindWindowEx (user32)[^]

А затем, если вы хотите слушать щелчки по этой кнопке, вы можете использовать SetWindowsHookEx:
Функция SetWindowsHookExA (winuser.h) | Microsoft Docs[^]
pinvoke.net: SetWindowsHookEx (user32)[^]

Я не могу дать более конкретных указаний, потому что мой опыт работы с этими функциями ограничен, но это примерно те шаги, которые вы можете предпринять.


Faran Saleem

Нет, я не хочу искать ручку кнопки, я просто хочу знать, была ли кнопка нажата или нет

Thomas Daniels

По крайней мере, крюк тебе все равно понадобится. В какой-то момент вам также может понадобиться ручка кнопки (чтобы различать другие щелчки), хотя я не нашел никаких примеров этого, так что теперь я не уверен, что это вообще возможно сделать. Я бы все же рекомендовал заглянуть в SetWindowsHookEx, потому что это самое близкое, что вы можете получить.

Faran Saleem

Хорошо спасибо я изучу его