|
WSH не работает SendKeys() под терминалом | ☑ | ||
|---|---|---|---|---|
|
0
Allexe
18.01.07
✎
13:58
|
Собственно сабж. Захожу по rdp на комп запускаю скрипт, он начинает выполнятся, выхожу обрывая ссессию, потом захожу снова SendKeys() не выполняется пока окно терминала не активно. В чем трабла?
|
|||
|
1
Allexe
18.01.07
✎
14:00
|
Если сворачиваю окно терминала та же хня.
|
|||
|
2
mergan
18.01.07
✎
14:04
|
(1)интересно а ты не пробовал без всх управлять спомощью клавиш управлять свернутым окном
|
|||
|
3
Allexe
18.01.07
✎
14:15
|
ну скрипт то я запускаю с друго компа на который захожу по rdp. Все остальное будет работать типа копирования, запуска программ, а SendKeys() нет. Вот и вопрос как сделать чтобы работало?
|
|||
|
4
mergan
18.01.07
✎
14:16
|
развернуть окошко для начала... сендкей это эмуляция нажатий клавиш на клавиатуре, поэтому и спросил (1)
|
|||
|
5
Allexe
18.01.07
✎
14:16
|
Т.е. окно проги которой нужно управлять на другом компе там не свернуто
|
|||
|
6
mergan
18.01.07
✎
14:18
|
ну значит фокус не на нем...
|
|||
|
7
Allexe
18.01.07
✎
14:23
|
Ладно я понял теряется фокус если свернуть закрыть окно терминала. А как нибудь по другому можно это провернуть?
|
|||
|
8
mergan
18.01.07
✎
14:32
|
конечно... любое окно всплывающае во время работы терминала... и фокус на нем...
|
|||
|
9
x4
18.01.07
✎
14:33
|
можно без фокуса работать с любым окном, даже в фоновом сеансе типа задач по расписанию и сервисов - на уровне win32api: FindWindow[Ex], GetLastActivePopup, PostMessage( WM_KEYDOWN, WM_KEYUP ), Sleep и т.д. но это намного более геморно, чем SendKeys. приходится посылать сообщения конкретным окнам, менюшкам и т.д. а для этого их надо нетривиально выщемливать с помощью шпионов. вобщем, можно но сложно. сам ищу готовое решение, т.к. моё слишком сложное. ну а про стабильность - это беда и SendKeys и аналогов. мот когда нить допишу своё решение до анализа того, какой пункт меню сейчас выделен, что написано на неожиданно всплывшем сообщении и сколько в нём каких кнопок. это всё реально, но ге-мор-но.
|
|||
|
10
Allexe
18.01.07
✎
14:37
|
А чего нибудь по проще без "фокусов" нету чтобы "тупо" эмулировать нажатия клавиш под терминалом?
|
|||
|
11
Allexe
18.01.07
✎
14:56
|
up
|
|||
|
12
Allexe
18.01.07
✎
15:01
|
(8) Кстати вот этот вариант отрабатывается нормально скрипт продолжает работать.
Перестает только если свернуть/закрыть(оборвать) окно терминала. |
|||
|
13
Fynjy
18.01.07
✎
15:07
|
Задача так и не описана ...
|
|||
|
14
Allexe
18.01.07
✎
15:17
|
(13) Значит все по порядку
1. Захожу по rdp на другой компьютер. 2. Запускаю с него скрипт 2.1. Скрипт запускает программу и эммулирует нажатие клавиш командой SendKeys() Задача: заставить выполнятся скрипт если сессия оборвана(т.е. не завершение работы пользователя а просто закрыть окно терминала) или окно терминала свернуто в трей. Проблемы: Если свернуть закрыть окно терминала перестает выполняться команда SendKeys это видно если заново развернуть/зайти в окно терминала. Найденное корявое решение: минимизировать окно терминала стянув его. При этом если окно терминала находится на заднем фоне(т.е. поверх него другие окна), но при этом не свернуто и не закрыто SendKeys выполняется нормально (только что проверил). Все таки хотелось бы красивого решения |
|||
|
15
Allexe
18.01.07
✎
16:21
|
up
|
|||
|
16
Ковычки
18.01.07
✎
16:30
|
Он и не будет выполняться, для таких задач нече сендкей прикручивать
|
|||
|
17
Allexe
18.01.07
✎
16:31
|
(16) Аналогов седкею нет?
|
|||
|
18
Ёпрст2
18.01.07
✎
16:33
|
(0) Для чего сендкей используешь? ..
|
|||
|
19
Allexe
18.01.07
✎
16:41
|
Запускаю opery и дальше передаю в окно адреса, строки со значениями переменных + "заполнение" форм на открывшихся страницах + открытие/закрытие новых страниц (табов)
|
|||
|
20
Ковычки
18.01.07
✎
16:44
|
(19) Афигеть... накуя ?
|
|||
|
21
Allexe
18.01.07
✎
16:52
|
(20) Это уже вопрос другой :) Скажем так надо. Суть от этого не меняется.
|
|||
|
22
Ковычки
18.01.07
✎
17:05
|
(21) Меняется, еще как...
|
|||
|
23
Ковычки
18.01.07
✎
17:06
|
Результат какой нада ? Может тебе качать чего или месаги отправлять, для этого у тебя в системе до и более средств...
|
|||
|
24
Allexe
18.01.07
✎
17:18
|
Ну к примеру возьмем этот форум.
Исходные данные: Мой логин, пароль, id темы, сообщение Результат: Зайти на форум открыть ветку с темой, вписать логин/пароль сообщение отправить в ветку. |
|||
|
25
Allexe
18.01.07
✎
17:39
|
up
|
|||
|
26
Ковычки
18.01.07
✎
17:51
|
(24) Пользуйся нормальными браузерами -
set ie=CreateObject("internetexplorer.application") user_name="Ковычки" user_password="Пароль" ie.navigate("http://www.forum.mista.ru") ie.visible=true do while ie.ReadyState<4 WScript.Sleep(100) loop set doc=ie.document doc.getElementById("user_name").value=user_name doc.getElementById("user_password").value=user_password set submits=doc.getElementsByTagName("input") for each c in submits if c.value="Вход" then c.click() end if next |
|||
|
27
Allexe
18.01.07
✎
17:55
|
(26) Респект а ОЛЕ для Оперы нету?
|
|||
|
28
Ковычки
18.01.07
✎
17:56
|
(27) давно ее не юзал, последнюю какую пользовал - 3.6 )) остальные только видел, в ФФ коечто можно придумать, хоть он и не поддерживает ОЛЮ, в опере надо зырить...
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |