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

Omny

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

Lazy_Kent

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

diSmiSS

ex-Team DUMPz
А вот и ответ написанный автором программы Valery_Kondakoff
Code:
#( 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 
)#
 

Ashcraft

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

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

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

Omny

Турист
Кстати, отличное решение. Буду разбираться с nnCron.
 
V

VladVY

Гость
Swm32

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

diSmiSS

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

Omny

Турист
под Windows 2000 SP4 тоже не работает. При попытке что либо запустить пишет NO RUN! :/
 
Top