This page is hosted for free by zzz.com.ua, if you are owner of this page, you can remove this message and gain access to many additional features by upgrading your hosting to PRO or VIP for just 32.50 UAH.

Windows - Пишем в vbs

Не работает? Начинай читать инструкцию.

Скрипт запрещения двойного запуска приложений

Как запретить пользователю запускать копию приложения. Запретить запускать одну и туже программу одновременно. Например браузер.

Предлагаю ознакомиться с предложениями моих партнёров

В моём случае надо запретить запретить запускать одновременно программу 1С. Может это не совсем приятно для некоторых работников, но всё же при запуске нескольких копий одной программы соотвтственно и тратится много ресурсов сервера.

В данном скрипте запрета запуска копии приложения, можно указать путь к любому приложению, и  для его запуска установить ярлык пользователю на рабочий стол.

Реализовать это просто на AutoIt3. Если нет необходимости ставить AutoIt3 на сервер, то скрипт можно компилировать в *.exe

; ** Скрипт запрещения двойного запуска приложений**
; Функция Singleton создаёт семафор при помощи WinAPI. Если такой семафор уже создан, то заканчиваем работу 
Func Singleton($semaphore)
 Local $ERROR_ALREADY_EXISTS = 183
 DllCall("kernel32.dll", "int", "CreateSemaphore", "int", 0, "long", 1, "long", 1, "str", $semaphore)
 Local $lastError = DllCall("kernel32.dll", "int", "GetLastError")
 If $lastError[0] = $ERROR_ALREADY_EXISTS Then Exit -1
EndFunc
Singleton("Mutex")
; Системная функция ShellExecuteWait запускает приложение и ожидает окончания работы с ним
; Дожидаться завершения программы нужно, чтобы корректно работал Mutex
; $CmdLineRaw - параметр запуска получаемый скриптом
ShellExecuteWait("C:\Program Files (x86)\Total Commander\Totalcmd.exe", $CmdLineRaw, @ScriptDir, "open", @SW_MAXIMIZE)

Ну вот и всё. Теперь если открыть Total Commander по этому скрипту, то вторую копию Total Commander скрипт не запустит.

Так же есть пример по теме: Как запретить повторный запуск программы через bat файл

Предлагаю ознакомиться с предложениями моих партнёров