Возможна автоматизация пользовательского интерфейса в C # без использования мыши

Итак, я пытаюсь использовать автоматизацию пользовательского интерфейса (особенно белую библиотеку) для одновременного моделирования нескольких автоматизаций. Я не хотел бы, чтобы моя мышь была захвачена. Есть какой-либо способ сделать это? По сути, я хочу, чтобы экземпляр моей автоматизации пользовательского интерфейса использовал виртуальную мышь специально для этой программы вместо моей основной мыши.


person Brian Jones    schedule 15.04.2016    source источник
comment
Что вы имеете в виду под словом «взял мою мышь»? Вы имеете в виду, что управление программой получило фокус или что курсор мыши исчез?   -  person Alas    schedule 19.04.2016
comment
wiget вместо контроля, чтобы было понятнее   -  person Alas    schedule 19.04.2016


Ответы (1)


Не совсем понятно, что вы имеете в виду. Библиотека White использует элементы автоматизации пользовательского интерфейса для взаимодействия с настольными приложениями. Как только вы захватите элемент, вы можете отправить ему любую команду, например, щелчок, и он фактически не будет использовать вашу существующую мышь, чтобы щелкнуть по нему. Похоже, вы автоматизируете мышь, а не приложение.

person Dmitry K.    schedule 15.04.2016
comment
var menu = _application.GetWindows()[0].MenuBar.MenuItem(Подключение, Вход); меню.Нажмите(); Это берет мою мышь и это passBox.SetValue(mypass); - person Brian Jones; 15.04.2016
comment
Прошло некоторое время с тех пор, как я использовал White, но вы можете вызвать RaiseClickEvent для элемента пользовательского интерфейса, если он поддерживает InvokePattern. Источник: teststackwhite.readthedocs.org/en/latest/AdvancedTopics/ - person Dmitry K.; 15.04.2016
comment
Спасибо, однако я перешел на это, и это все равно взяло мою мышь. - person Brian Jones; 15.04.2016
comment
RaiseClickEvent() использует InvokePattern, который не использует мышь. - person unickq; 15.04.2016