helpf.pro
Регистрация

v8: Запущено ли приложение

Mankubus
01.09.2011 08:06Прочитано: 1961
Здравствуйте!
Как мне узнать посредством 1С запущено ли у пользователя приложение MS Outlook?
И вообще установлено ли оно в системе?
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
01.09.2011 10:20Ответ № 1
(0) Mankubus, вот примеры:
Если хотим проверять перед запуском задачи, нет ли уже запущенной копии, то делаем примерно так:
Код VBS
 Set objService = GetObject("WinMgmts:\\.\Root\CIMV2")
Set colProcesses = objService.ExecQuery("S_elect * from Win32_Process WHERE Name='NOTEPAD.EXE'")
counter = 0
For Each objProcess in colProcesses
counter = counter + 1
Next
If counter < 1 Then
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "%windir%\notepad"
End If


Если хотим скрипт, который постоянно висит в памяти и убивает лишние процессы, то делаем примерно так:
Код VBS
 Set objService = GetObject("WinMgmts:\\.\Root\CIMV2")

Set objEventSource = objService.ExecNotificationQuery _
("S_elect * FROM __InstanceCreationEvent " & _
"WITHIN 1 WHERE (TargetInstance ISA 'Win32_Process' " &_
"AND TargetInstance.Name='NOTEPAD.EXE') ")

Do While true
Set objEvent = objEventSource.NextEvent
Set colProcesses = objService.ExecQuery("S_elect * from Win32_Process WHERE Name='NOTEPAD.EXE'")
counter = 0
For Each objProcess in colProcesses
counter = counter + 1
Next
Wscript.Echo counter
IF counter > 1 Then
objEvent.TargetInstance.Terminate
counter = counter - 1
end If
Loop

Изменено 01.09.11 10:20:50 по причине: добавление инфы
Mankubus
02.09.2011 14:51Ответ № 2
жесть какая..
klel
18.11.2011 13:18Ответ № 3
Можно ещё один вариантом только:
Код 1C v 8.2 УП
 
Массив = Новый Массив;
ОбъектНов = ПолучитьCOMОбъект("WinMgmts:\\.\Root\CIMV2");
СписокПроцессов = ОбъектНов.ExecQuery("S_elect * from Win32_Process");
Для каждого Стр из СписокПроцессов Цикл
Массив.Добавить(Стр.Name);
КонецЦикла;
klel
18.11.2011 13:20Ответ № 4
Единственный я не знаю всех реквизитов типа "Name" для каждого запущенного процесса
Подсказка: Для быстрого перемещения к последнему ответу или к вопросу используйте или .
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.