Ua-life
16-03-2015, 11:12
Добрый день. Так как у меня файловый вариант 1С мне приходиться держать одну сессию данного приложения открыто. Очень хорошо с этим справлялся вот этот скрипт
[CODE][/Option Explicit
Const Above_Normal = 32768
Dim objSWbemObjectEx
Dim lngProcessID
With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
If .ExecQuery("SELECT * FROM Win32_Process WHERE Name = '1cv8.exe'").Count = 0 Then
Set objSWbemObjectEx = .Get("Win32_ProcessStartup")
objSWbemObjectEx.PriorityClass = Above_Normal
' Create method of the Win32_Process class (Windows) (http://msdn.microsoft.com/en-us/library/aa389388(v=vs.85).aspx)
If .Get("Win32_Process").Create( _
"""C:\Program Files (x86)\1cv82\8.2.16.352\bin\1cv8.exe""", _
"C:\Program Files (x86)\1cv82\8.2.16.352\bin", _
objSWbemObjectEx, _
lngProcessID _
) <> 0 Then
WScript.Echo "Can't start process [""%Program Files (x86)\1cv82\8.2.16.352\bin""."
End If
Set objSWbemObjectEx = Nothing
End If
End With
WScript.Quit 0
CODE]
но беда в том, что у меня терминальный сервер и если один из пользователей имеет запущенный процесс 1С то данный скрипт не выполняется.
Так как в данных скриптах я не силен прошу подсказать, что добавить в скрипт или переделать, что бы проверялся на запущенный процесс 1С только от Имени Администратора и если нет то запустить. Спасибо.
[CODE][/Option Explicit
Const Above_Normal = 32768
Dim objSWbemObjectEx
Dim lngProcessID
With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
If .ExecQuery("SELECT * FROM Win32_Process WHERE Name = '1cv8.exe'").Count = 0 Then
Set objSWbemObjectEx = .Get("Win32_ProcessStartup")
objSWbemObjectEx.PriorityClass = Above_Normal
' Create method of the Win32_Process class (Windows) (http://msdn.microsoft.com/en-us/library/aa389388(v=vs.85).aspx)
If .Get("Win32_Process").Create( _
"""C:\Program Files (x86)\1cv82\8.2.16.352\bin\1cv8.exe""", _
"C:\Program Files (x86)\1cv82\8.2.16.352\bin", _
objSWbemObjectEx, _
lngProcessID _
) <> 0 Then
WScript.Echo "Can't start process [""%Program Files (x86)\1cv82\8.2.16.352\bin""."
End If
Set objSWbemObjectEx = Nothing
End If
End With
WScript.Quit 0
CODE]
но беда в том, что у меня терминальный сервер и если один из пользователей имеет запущенный процесс 1С то данный скрипт не выполняется.
Так как в данных скриптах я не силен прошу подсказать, что добавить в скрипт или переделать, что бы проверялся на запущенный процесс 1С только от Имени Администратора и если нет то запустить. Спасибо.