Скрыть все окна для процесса (например, Internet Explorer) - PullRequest
3 голосов
/ 17 декабря 2009

Я использую WatiN для сценариев действий в Internet Explorer, которые выполняются в фоновом режиме на компьютере пользователя. (Я знаю ... хаки) Я могу через WatiN, чтобы окно Internet Explorer не отображалось. Тем не менее, во время моего сценария открываются некоторые HTML-диалоги. Я могу скрыть их, используя P-Invoke ShowWindow в User32.dll, но они все еще появляются на секунду или около того, пока я нахожу HWnd для диалога. Мой вопрос:

Есть ли способ остановить процесс, чтобы показать какие-либо окна?

Спасибо

Ответы [ 2 ]

0 голосов
/ 30 июня 2011
ie.ShowWindow(NativeMethods.WindowShowStyle.Hide);
0 голосов
/ 16 июля 2010

Я предполагаю, что вы пробовали свойство AutoCloseDialogs в свойстве Settings объекта IE в WatiN?

Один из вариантов - запускать все это под другой учетной записью пользователя. Я не уверен, что вызывает WatiN, но Windows API CreateProcessAsUser по умолчанию помещает все процессы, которые он создает, в отдельный интерактивный рабочий стол, т.е. не текущий пользовательский. Это сообщение в блоге содержит некоторую информацию о вызове CreateProcessAsUser из .net.

...