VBScript: список активных окон Windows

Программирование на Active Server Pages и VBScript.
SAS
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 21.06.2005 (Вт) 0:30
Откуда: Петропавловск-Камчатский

VBScript: список активных окон Windows

Сообщение SAS » 19.07.2005 (Вт) 23:14

Доброе утро.

Возможно ли написать такой VBScript, который
1. перечислял бы все запущенные на клиентской машине приложения и
2. обновлял бы эту информацию, когда любое приложение закроется или откроется.

Спасибо.

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 20.07.2005 (Ср) 11:52

1. Возможно (через WMI - что явно указывает на узкую применимость - системы линейки NT).
2. В реальном режиме без внешних приблуд отследить открытие и закрытие окон нельзя. А если запустить скрипт в бесконечный цикл с остановками на время ( Sleep (ВремяВМиллисекундах)) - то в принципе можно получить хоть какое-то подобие желаемого.
Это Ж-ж-ж-ж неспроста (с) Винни-Пух

SAS
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 101
Зарегистрирован: 21.06.2005 (Вт) 0:30
Откуда: Петропавловск-Камчатский

Сообщение SAS » 20.07.2005 (Ср) 22:27

Ruslan Demidow писал(а):1. Возможно (через WMI - что явно указывает на узкую применимость - системы линейки NT).

Я нашел подобную тему, но там рассматривается возможность получения списка окон на VB с использованием API
http://bbs.vbstreets.ru/viewtopic.php?t=13871. Узкость использования WMI меня не пугает. Однако мне пока не удалось получить ответа на вопрос как получить список окон работающих приложений с помощью WMI - список процессов - пожалуйста.

Код: Выделить всё
Machine="GeoITWS0"' имя машины
set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}" _
                                     & "!" & Machine).InstancesOf("Win32_Process")
' перечисление процессов
For Each oProcess in oWMI
        processes = processes &  oProcess.Name & _
        " " & oProcess.ProcessID & _
        " " & oProcess.priority & chr(13) & chr(10)
Next

Правда на самом деле я не понимаю что использую:
("winmgmts:{impersonationLevel=impersonate}" & "!" & Machine).InstancesOf("Win32_Process").
Может быть подскажете как именно получить список работающих приложений? мне это нужно чтобы потом была возможность использовать метод AppActivate:
Код: Выделить всё
dim WSH
set WSH=WScript.CreateObject("WScript.Shell")
WSH.AppActivate ("заголовок активного окна")


Вернуться в ASP и VBScript

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

    TopList