Есть ли способ запретить запуск нескольких копий одной программы

Omny

Турист
Регистрация
26 Июн 2004
Сообщения
26
Реакции
1
Credits
32
Значит есть программа, с которой работаю пользователи. Програма устроена таким образом, что её можно запустить сколько угодно копий. Вот только, если ты поработаешь в одной копии, а потом в другой, у неё нарушаются log-и, что совсем не хорошо, потому что по ним ведётся учет. Пользователи очень тупы :mama: уже устал им обьяснять, чтобы они не запускали эту программу по сто раз!!!
Есть ли какие способы или сображения как запретить запуск нескольких копий этой программы?
 
L

Lazy_Kent

Способ такой - отслеживать запуск второй копии и убивать процесс.
Думаю, с помощью nnCron это можно реализовать.
 
D

diSmiSS

А вот и ответ написанный автором программы Valery_Kondakoff
Код:
#( test_kproc 
VARIABLE proc-count 
WatchProc: xxx.exe 
Action: 
0 proc-count ! 
\ считаем - сколько процессов в памяти 
FOR-PROCS: "xxx.exe" 
    proc-count @ 1 + proc-count ! 
;FOR-PROCS 
proc-count @ 1 > 
\ если больше одного - прибиваем последний запущенный 
IF 
    KILL: "%WATCH-PROC-ID%" 
THEN 
)#
 
A

Ashcraft

В листинг неплохо было бы добавить

Msg: "У Вас уже запущена данная программа"

или типа того, а то пользователи замучают вопросами, почему мол мы запускаем программу, а она не запускается
 

Omny

Турист
Регистрация
26 Июн 2004
Сообщения
26
Реакции
1
Credits
32
Кстати, отличное решение. Буду разбираться с nnCron.
 
V

VladVY

Swm32

Программа, которая умеет запускать приложения и следить, чтобы их не
запускали повторно - просто пытается открыть окно запущенного ранее
приложения (естественно обе попытки должны быть произведены через
Swm32 =) ).
 
D

diSmiSS

VladVY, у меня на XP SP2 не функционирует :(... К тому же дата ее последнего обновления далекий 1999 год...
 

Omny

Турист
Регистрация
26 Июн 2004
Сообщения
26
Реакции
1
Credits
32
под Windows 2000 SP4 тоже не работает. При попытке что либо запустить пишет NO RUN! :/