Список работающих приложений на VBScript
От: S_A_S  
Дата: 20.07.05 19:53
Оценка:
Я пытаюсь получить с помощью клиентского скрипта список активных приложений, работающих на момент работы скрипта для того, чтобы заполнить список, а потом пеерключаться между приложениями из списка. Что вызвать из VBScript API функции нельзя, я знаю, пытался использовать объект 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 ("заголовок активного окна")


ActiveX как обертку API функций для этого я использовать не могу, проблема в том, что этот скрипт будет работать в нашей интрасети, в которой большое количество пользователей, не имеющих прав администратора на своих машинах, поэтому невозможно будет зарегистрировать ActiveX на их машинах. А устанавливать его на каждой машине администратору просто невозможно — машины территориально раскиданы. Если возможно, посоветуйте, как решить эту проблему с использованием входящих в Windows объектов таких как WMI.
Re: Список работающих приложений на VBScript
От: Аноним  
Дата: 21.07.05 11:42
Оценка:
Здравствуйте, S_A_S, Вы писали:

Если возможно, посоветуйте, как решить эту проблему с использованием входящих в Windows объектов таких как WMI.

Это оно?

'Windows Management Instrumentation (WMI)
Dim objProcessName
strComputer = "Name_of_comp" 'подставить нужное имя
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process ")
For Each objProcess in colProcessList
objProcessName = objProcessName & ", " & objProcess.name
Next
Wscript.Echo "Процессы: " & objProcessName
Re[2]: Список работающих приложений на VBScript
От: S_A_S  
Дата: 22.07.05 03:16
Оценка:
Здравствуйте, Аноним, Вы писали:


А>Это оно?


А>'Windows Management Instrumentation (WMI)

А>Dim objProcessName
А>strComputer = "Name_of_comp" 'подставить нужное имя
А>Set objWMIService = GetObject("winmgmts:" _
А> & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
А>Set colProcessList = objWMIService.ExecQuery _
А> ("Select * from Win32_Process ")
А>For Each objProcess in colProcessList
А> objProcessName = objProcessName & ", " & objProcess.name
А>Next
А>Wscript.Echo "Процессы: " & objProcessName

Честно говоря я не заметил существенных отличий в этом коде от того, который у меня в вопросе.
МНЕ НУЖНЫ НЕ PID процессов (objProcess.name в Вашем коде), а ЗАГОЛОВКИ АКТИВНЫХ ОКОН.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.