Еще один о Win32 Vs UI Automation

Я создаю (приложение Web/WinForms, которое я еще не решил), и у меня есть работающее простое приложение WinForms, к которому я никак не могу получить доступ через свое новое приложение, и я просто хочу прочитать некоторые значения и, возможно, отредактировать некоторые значения (метки, кнопки, некоторые тривиальные вещи). поэтому я использовал Spy++, как рекомендовано в этот вопрос.

Итак, с помощью этого замечательного инструмента я смог увидеть значения, которые мне нужно прочитать/отредактировать. и я смог изменить некоторые значения (например, скрыть, снять отметку, отключить и т. д. для некоторых меток и кнопок), и они отразились на приложении.

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

У меня есть еще 3 вопроса по этой проблеме:

  1. что лучше использовать против WinForms и почему?

  2. и можно ли использовать любой из двух вариантов через веб-приложение или оба варианта должны быть реализованы в приложении WinForms?

  3. Есть ли у какого-либо из этих параметров ограничение на редактирование значений?


person Mazen Elkashef    schedule 09.10.2011    source источник


Ответы (1)


(Если вы все еще ищете..)

Это зависит от того, что вам более знакомо. Кроме того, в целом, я думаю, UI Automation немного проще, так как для Wind32SDK нужно использовать много пинвок и тому подобного, что, вероятно, не дается простым людям с .net.

Для Win32 http://www.pinvoke.net/default.aspx/ действительно является одно лучшее место для начала, предоставляющее вам все подписи и некоторые образцы кода.

Для автоматизации пользовательского интерфейса также есть много мест, где можно начать с большого количества примеров. Одним из многих является http://blogs.msdn.com/b/winuiautomation/ .

Также обратите внимание, что они несопоставимы по мощности и удобству использования. Как уже говорилось, автоматизация пользовательского интерфейса более естественна, Win32 также позволяет вам получить доступ ко многим значениям, которые вы не можете получить с помощью автоматизации. Я думаю, что автоматизация пользовательского интерфейса в основном доступна только для чтения.

Забавно включать/отключать кнопку в чужом приложении. Узнав, что это часто работает, я подумал использовать его в каком-нибудь защищенном коммерческом продукте (у которого просто отключены кнопки «pro»), просто чтобы проверить, есть ли дополнительная защита. :) Это также означает, что если вы хотите Чтобы иметь такую ​​функцию в своем приложении, знайте, что пользователь всегда может сделать скрытый элемент видимым или включить отключенный.

person Andreas Reiff    schedule 28.06.2012