logo
logo
Конфликты участились... [Meinfin 22/01/2014 15:15]
поэтому набросал маленький скрипт на AutoIT (скомпилированный exe можно взять тут) который проверяет не запущена ли программа на другом компьютере.
Программист из меня никудышный, поэтому могут, наверное, быть ошибки, но у меня работает, может пригодиться еще кому.
(повредить данные или повлиять на работу скрипт никак не может, ошибки могут быть только в определении запущена ли AC).
 
Для работы программу нужно положить в папку вместе AbilityCash.exe и для запуска использовать только RUN_AC.exe
Что делает программа:
1. Проверяет нет ли в каталоге с программой специального файла-семафора (Log.txt)
2.а Если Log.txt не обнаружен, то создает его и запускает AbilityCash
3.а И ждет завершения работы AbilityCash, а затем удаляет Log.txt
2.б Если Log.txt обнаружен, то предполагается что программа уже запущена и будет выведено предупреждение.
 
Код скрипта:
$Semafor = @ScriptDir & "\Log.txt"
$text = "Программа запущена на компьютере " & @ComputerName &", пользователем " & @UserName &" в "& @HOUR&":"&@MIN &" "& @MDAY&"."&@MON&"."&@YEAR
If Not FileExists($Semafor) Then
FileWrite($Semafor, $text)
RunWait(@ScriptDir & "\AbilityCash.exe")
FileDelete($Semafor)
Else
$log = FileRead($Semafor)
MsgBox(0, "Ошибка", "Запуск программы не возможен!" & @LF & $log & @LF & "Сообщите об этом системному администратору")
EndIf

 
P.S.
Если компьютеров много и запускаете программу с ярлыка, то можно AbilityCash.exe переименовать в Cash.exe и рядом положить чуть переделаный скрипт он называется AbilityCash.exe, поэтому все ярлыки будут работать и для других пользователей подмена пройдет не заметно