|
|
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
Задача: закрыть всплывающее окно в Windows 2000/2003 (окошко в котором кнопка OK и все) при его появлении. Я так понимаю по eventtrigger (а в журнале событий появляется сообщение о всплывающем окне PopUp с ID 26) по событию в журнале запустить батник, в котором будет производиться закрытие этого окошка. Загвоздка в том, что при нажатии OK на первом окошке обязательно возникает следующее, в котором также в свою очередь надо нажать OK и после этого перезапустить определенную службу (пока не нажмешь на Ok закрыв всплывшие окна службу перезапустить не удается) Как это реализовать ? Поможет ли закрыть эти окна команда kill (taskkill) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 09:37 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
можно попробовать из WSH SendKeys ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 10:13 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
--null--можно попробовать из WSH SendKeys а можно поподробнее как это и чем ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 10:44 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
есть такой WSH делаем файлик с close.vbs имя окна указываем как у этой заразы - он не нее переведет фокус и нажмет Enter - должно закрыться. Если окон несколько - вставьте дальше код аналогично. Код: plaintext 1. 2. 3. 4. 5. запускаем cscript close.vbs ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 10:54 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
--null--есть такой WSH делаем файлик с close.vbs имя окна указываем как у этой заразы - он не нее переведет фокус и нажмет Enter - должно закрыться. Если окон несколько - вставьте дальше код аналогично. Код: plaintext 1. 2. 3. 4. 5. запускаем cscript close.vbs А для работы этого скрипта, необходимо ли что то устанавливать (VisualBasic,...) или прям в Win2000/2003 будет работать ? Потому как все это дело надо организовать на сервере и не хотелось бы туда устанавливать дополнительный софт/приложения/... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 14:17 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
WSH есть начиная с 98 Windows. Метод SendKeys вроде тоже везде работает. Просто нужно чтобы был установлен сервер сценариев (по умолчанию он устанавливается начиная с W2k точно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 15:04 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
Все вроде понятно что делает А что означает строка ? "WScript.sleep 1000" Просто дает время на то чтобы окно стало активным ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 17:03 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
G> А что означает строка ? G> "WScript.sleep 1000" Означает "подождать одну секунду" (тыщу миллисекунд) PS наверно, скрипт изначально был с циклом, который выкинули :) Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 17:15 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
vkle PS наверно, скрипт изначально был с циклом, который выкинули :) Posted via ActualForum NNTP Server 1.3 А можно в этот скрипт вписать выполнение какой-либо Виндовой команды с параметрами (запускной *.exe сопределенными параметрами), если да то как именно это пишется ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 10:39 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
vklePS наверно, скрипт изначально был с циклом, который выкинули :) это действительно фрагмент. Но дело не в цикле - просто привычка фишка в том, что стандартный прием - сделать run приложению - а потом его активировать и делать sendkeys. И все руководства по WSH рекомендуют между вызовом проги и попыткой ей управлять сделать паузу - видимо, чтобы гарантированно прога успела запуститься и создать окно. Возможно, в случае автора не надо делать sleep - но не помешает подстраховаться, в конце концов что такое одна секунда :-) авторА можно в этот скрипт вписать выполнение какой-либо Виндовой команды с параметрами (запускной *.exe сопределенными параметрами), если да то как именно это пишется ? конечно можно sh.run "имя_программы" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 10:50 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
ну и в циклах или при последовательной подаче команд конечно тоже паузы надо делать, чтобы интерфейс успевал за WSH-ем. А то может получиться много трагикомических ситуаций :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 10:53 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
n> фишка в том, что стандартный прием - сделать run приложению - а потом n> его активировать и делать sendkeys. И все руководства по WSH рекомендуют n> между вызовом проги и попыткой ей управлять сделать паузу - видимо, n> чтобы гарантированно прога успела запуститься и создать окно. Ага, если это внешняя по отношению к WSH прога. Но вот насчет паузы... Не всякое же приложение за секунду стартанет, особенно, если комп медленный. Уж лучше проверять готовность + еще добавить с полсекунды... ИМХО. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 11:14 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
vkle совершенно с Вами согласен. Это всего лишь пример и исходить надо из опыта на конкретной машине и приложении. А в особо ответственных случаях можно даже и 10-секундные паузы делать - гораздо спокойнее. При активации можно делать и более сложные вещи - скажем, цикл с маленькими sleep-ами, который повторять, пока приложение не активизируется (apppactivate, насколько я помню, при неудаче возвращает 0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 12:39 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
--null--... А в особо ответственных случаях можно даже и 10-секундные паузы делать - гораздо спокойнее. При активации можно делать и более сложные вещи - скажем, цикл с маленькими sleep-ами, который повторять, пока приложение не активизируется (apppactivate, насколько я помню, при неудаче возвращает 0) А не рассматриваете такой ситуации, что пока вы активировали окно и сделали паузу, может запуститься какой то иной процесс (новое окно всплыть, через шедулер что то запуститься) и в итоге активным стало иное окно и вы уже в ем senkey делаете - нехорошо получиться !!! Так что вопрос с паузой неоднозначен !!! В моем случае видимо не надо паузы т.к. полностью задача выглядит так. Некая служба сбоит, при этом выводит окно с сообщением, в котором только кнопку OK нажать можно (других просто нет), нажимая OK тут же возникает второе окно, все от той же службы (просто с несколько иным сообщением), и нажимая в ней OK необходимо сделать перезапуск службы. Вывод этих окон фиксируется в журнале событий. Автоматизаия: 1. прописать trigger который по определенному событию в журнале будет запускать то что пропишем - пропишем как раз этот скрипт для запуска 2. скрипт активирует окно (на всякий случай) и посылает в нем нажатие enter. 3. скрипт продолжает выполняться и активирует новое (возникшее окно) и так же посылает в него нажатие Enter. 4. Выполняет команду перезапуска службы В итоге паузу нужно поставить разве что в скрипте между выполнением 3. и 4. пунктов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 15:42 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
Хм, вообще-то логичнее по дескриптору процесса делать рестарт. А в упрощенной постановке - может, nnCron поставите? - он умеет жать на кнопки в заданных окнах :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 15:48 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
авторА не рассматриваете такой ситуации, что пока вы активировали окно и сделали паузу, может запуститься какой то иной процесс (новое окно всплыть, через шедулер что то запуститься) и в итоге активным стало иное окно и вы уже в ем senkey делаете - нехорошо получиться !!! рассматриваю :-( Это, к сожалению, недостаток таких роботов для работы с GUI выход - чтобы уж ничего не всплывало. Ибо мальенькая пауза лишь уменьшает вероятность такого глюка - но никак ее не исключает. Соответсвенно, эти штуки надо запускать на выделенных станциях, за которыми не работают юзеры. Бывают проги, которыми извне управлять можно только GUI - а автоматизировать ну очень хочется (много монотоных действий). в Вашем случае действительно можно забить на паузу. Так как очевидно в момент срабатывания триггера окно уже будет присутствовать. Думаю, после некоей отладки все будет OK! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 15:53 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
кстати, да - у rrrrrrrrrr более надежный вариант. Знать ID процесса, по триггеру его убить (и окно исчезнет) - а потом сделать restart. Не будет мороки с GUI и к тому же все это будет работать и при лоченном сервере (в этой ситуации wsh sendkeys не поможет, кстати) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 15:57 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
rrrrrrrrrrХм, вообще-то логичнее по дескриптору процесса делать рестарт. А в упрощенной постановке - может, nnCron поставите? - он умеет жать на кнопки в заданных окнах :) Пробовал конечно так сначала. Беда в том что никак не останавливается/рестартуется/.... процесс, пока не нажаты (закрыты) окна всплывающие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 09:38 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
--null--[quot автор]... в Вашем случае действительно можно забить на паузу. Так как очевидно в момент срабатывания триггера окно уже будет присутствовать. Думаю, после некоей отладки все будет OK! Испробовал пока без триггера - просто ручками запустил *.vbs когда появилось первое всплывшее окно (внутри vbs прописал закрытие обоих окон последовательно с паузой в 1 секунду между закрытиями окон) - все отлично сработало. Осталось триггер забацать и в скрипт добавить запуск службы. А можно как то добавить в скрипт послать сообщение по PoP3 нзаданный адрес ? (чтобы как то оповещать о происходящих сбоях) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 09:43 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
конечно можно. Наверное все же отправить по SMTP, а не по POP3. Например, можно породить объект Аутглюка Код: plaintext 1. 2. 3. 4. 5. 6. Надо что был настроен аутлук, конечно. иначе - можно использовать какой-нибудь SMTP сендер - тот же blat или еще что-то такое, которое запускать как внешнюю прогу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 09:54 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
Еще скриптик отправки почты, по образцу от мелкософта. На компе должен работать SMTP-клиент Set objEmail = CreateObject("CDO.Message") objEmail.From = "test@test.com" objEmail.To = "user@domain.ru" objEmail.Subject = "PopUp message" objEmail.Textbody = "PopUp message is closed." objEmail.Send Есть там еще скриптик, чуток посложней, но SMTP-клиент не обязателен Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 10:26 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
vkleЕсть там еще скриптик, чуток посложней, но SMTP-клиент не обязателен Если есть - выложите плиз для коллекции. Многим поможет, полезно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 10:56 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
n> Автор: --null-- n> vkle n> Есть там еще скриптик, чуток посложней, но SMTP-клиент не обязателен n> Если есть - выложите плиз для коллекции. n> Многим поможет, полезно. Собственно, вот на этой страничке оба скрипта http://www.microsoft.com/technet/scriptcenter/resources/qanda/nov04/hey1129.mspx Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 11:04 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
vkle Собственно, вот на этой страничке оба скрипта http://www.microsoft.com/technet/scriptcenter/resources/qanda/nov04/hey1129.mspx на этой странице скрипты то есть, но по сути оба одинаковы (просто во 2-м добвлен аттач) Я честно говоря не понял как изменить на свои параметры (на свой сервер) строки : Set objEmail = CreateObject("CDO.Message") objEmail.From = "helpdesk@fabrikam.com" objEmail.To = "administrator@fabrikam.com" objEmail.Subject = "Server down" objEmail.Textbody = "Server1 is no longer accessible over the network." objEmail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 objEmail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _ "smtpmailer" objEmail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 objEmail.Configuration.Fields.Update objEmail.Send И что с этим делать, что менять на свое (кроме 1-го абзаца - первые 5 строк) И почему там http мелкомягкие указаны... ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 12:59 |
|
||
|
Закрыть всплывающее окно из командной строки
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, не помню с какой именно странички брал первый скрипт... тем не менее, когда тестил - работало... Можно погуглить. G> И что с этим делать, что менять на свое (кроме 1-го абзаца - первые G> 5 строк) Ну, вобще то надо указать все свои данные или провайдера. Вместо "smtpmailer" пробовал указывать имя своего майл-сервера или прова ну и порт конечно в следующем параметре... G> И почему там http мелкомягкие указаны... ? хз. не разбирался. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2006, 13:21 |
|
||
|
|

start [/forum/topic.php?fid=26&msg=33896964&tid=1498573]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 506ms |

| 0 / 0 |
