Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   AppActivate не срабатывает (http://forum.oszone.net/showthread.php?t=176679)

Solarity 27-05-2010 05:29 1421982

AppActivate не срабатывает
 
Задача: требуется запускать на компьютерах пользователей программы и управлять ими средствами WSH, с учётом того, что пользователи, возможно, будут продолжать зачем-то тыкать в другие окна. Поэтому, перед выполнением действий вызываем AppActivate.
Пример из справки:

Код:

Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("notepad")
WScript.SLEEP 2000
WshShell.AppActivate(WshExec.ProcessID)
WshShell.SendKeys "0123456789"

Если после запуска блокнота изменить активное окно, WshShell.AppActivate(WshExec.ProcessID) не отрабатывает. Как это забороть?

amel27 27-05-2010 11:19 1422089

Solarity, у меня скрипт нормально отработал - переключился на блокнот как и задумано, как вариант - попробуйте указать заголовок окна вместо PID, проверьте правильность возвращаемого PID... а вообще для задач "управления программами" AutoIT доктор прописал... ;)

Solarity 27-05-2010 11:37 1422102

Проверял на нескольких компах - открываю папку со скриптом, запускаю, открывается блокнот, тут же кликаю по папке - и блокнот оказавшийся на заднем плане там и остаётся, только мигает оранжевым в панели задач. =)
PID правильный, блокнот реагирует, просто не так, как надо. =)
Сам хочу писать на AutoIt, но я не один и коллега хочет единообразия, а он за WSH. =)

amel27 27-05-2010 12:56 1422143

Цитата:

Цитата Solarity
на заднем плане там и остаётся, только мигает оранжевым в панели задач »

AFAIK эту проблему и на API решить не просто, не то что скриптом (гляньте хоть тут): AppActivate только переводит фокус ввода, а отображать окно поверх остальных не обязано... и вообще, ненадежно всё это, тем более при активных пользователях... в AutoIT по крайней мере многие вещи с (некоторыми) окнами можно делать и без их активации


Время: 09:14.

Время: 09:14.
© OSzone.net 2001-