![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » Как запретить запуск двух копий 1С8 |
|
Как запретить запуск двух копий 1С8
|
Новый участник Сообщения: 3 |
Всем привет! У меня такой вопрос, казалось бы его уже тут разжевывали сто раз.
Как запретить запуск двух копий 1С8? Тут на форуме нашел тему и получил ответ на свой вопрос, но не до конца. Так как пользователи работают по RDP с 1С то нужна проверка. Есть такой код который отлично работает под локальным пользователем: bitVersion = "'64'" strPath = "1cv8\8.3.10.2252\bin" strProcess = "1cv8c.exe" runProcess = "'1cv8c.exe'" strcomputer = "." set objwmiservice = getobject("winmgmts:" _ & "{impersonationlevel=impersonate}!\\" _ & strcomputer & "\root\cimv2") set colprocesses = objwmiservice.execquery( _ "select name from win32_process " _ & "where name = " & runProcess) if colprocesses.count = 0 then set objshell = wscript.createobject("wscript.shell") set objenv = objshell.environment("process") If bitVersion = "'64'" Then ProgramFilesPath = "%ProgramFiles%" Else ProgramFilesPath = "%ProgramFiles(x86)%" End If objshell.run """" + ProgramFilesPath + "\" + strPath + "\" + strProcess + "" else msgbox "Копия программы уже запущена. ", 48, "Внимание" end if strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set colProcesses = objWMIService.ExecQuery( _ "Select Name From Win32_Process " _ & "Where Name = '1cv8.exe'") Set objShell = Wscript.CreateObject("Wscript.Shell") Set objEnv = objShell.Environment("Process") strCurrentUser = UCase(objEnv("UserDomain") & "\" & objEnv("UserName")) For Each objProcess in colProcesses If objProcess.GetOwner(strUser, strDomain) = 0 Then If UCase(strDomain & "\" & strUser) = strCurrentUser Then MsgBox "Копия программы уже запущена. ", 48, "Внимание" Wscript.Quit End If End If Next objShell.Run """" + objEnv("ProgramFiles") + "\1cv81\bin\1cv8.exe""" |
|
Отправлено: 11:03, 22-09-2020 |
Ветеран Сообщения: 4627
|
Профиль | Отправить PM | Цитировать Цитата ee0066:
Цитата ee0066:
|
||
Отправлено: 11:31, 22-09-2020 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Написал как вы посоветовали чудо не случилось так же не находит путь и не запускает 1С
Написал как вы посоветовали чудо не случилось так же не находит путь и не запускает 1С %ProgramFiles(x86)% |
Отправлено: 12:01, 22-09-2020 | #3 |
Сообщения: 53585
|
Профиль | Отправить PM | Цитировать |
Отправлено: 12:17, 22-09-2020 | #4 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать Petya V4sechkin,
Ошибка: Не удается найти указанный файл
Спасибо большое NickM, ответ на вопрос получил и выкладываю рабочий код. strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set colProcesses = objWMIService.ExecQuery( _ "Select Name From Win32_Process " _ & "Where Name = '1cv8.exe'") Set objShell = Wscript.CreateObject("Wscript.Shell") Set objEnv = objShell.Environment("Process") strCurrentUser = UCase(objEnv("UserDomain") & "\" & objEnv("UserName")) For Each objProcess in colProcesses If objProcess.GetOwner(strUser, strDomain) = 0 Then If UCase(strDomain & "\" & strUser) = strCurrentUser Then MsgBox "Копия программы уже запущена. ", 48, "Внимание" Wscript.Quit End If End If Next objShell.Run """" + objEnv("ProgramFiles(x86)") + "\1cv8\8.3.8.1675\bin\1cv8.exe""" |
|
Отправлено: 12:31, 22-09-2020 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Как запретить запуск двух и более копий 1С8 в Терминальном сеансе пользователя! | sigmatik | Хочу все знать | 20 | 15-06-2019 11:48 | |
Как запретить запуск двух и более копий 1С8 | ragnar40 | Хочу все знать | 33 | 11-05-2018 14:02 | |
Как запретить запуск программы Mesa? | severagent007 | Лечение систем от вредоносных программ | 5 | 30-12-2012 19:36 | |
Запретить запуск конкретной программы более двух раз за сессию. | kardinal96 | Хочу все знать | 2 | 03-06-2012 21:54 | |
[решено] Как можно предотвратить запуск сразу нескольких копий одной программы??? | sashadeg | AutoIt | 8 | 01-04-2009 00:51 |
|