Запрет запуска копий программы

Обсуждение программ nnCron и nnCron LITE

Запрет запуска копий программы

Postby nnorth » Tue, 03 Jul 2012, 14:24

Здравствуйте! С помощью nnron запускаю программу, но есть вероятность, что кто то или что то попытается ее запустить еще раз (программа позволяет плодить свои копии). Как отследить это и воспрепятствовать безобразию. Спасибо!
nnorth
 
Posts: 8
Joined: Tue, 28 Feb 2012, 21:30

Re: Запрет запуска копий программы

Postby Morituruz » Tue, 03 Jul 2012, 15:18

Как-то примерно так (не проверял):
Code: Select all
#( start_myprog
SingleInstance
VARIABLE program_id
VARIABLE my_flag
Action:
\ сначала запускаем нашу программу:
ShowNormal
StartIn: "c:\"
START-APP: "c:\myprog.exe"
\ сохраняем PID запущенной программы в переменную:
PROC-ID program_id !
BEGIN
   \ пауза в 200 мс, чтобы не загружать процессор:
   200 PAUSE
  \ заносим истину в переменную-флаг, чтобы знать, когда наш процесс закроется и выйти из цикла:
  my_flag ON
  \ проходим в цикле по всем процессам, ищем совпадение с именем нашего процесса
  FOR-PROCS: "myprog.exe"
    \ сравниваем найденный ID процесса с ID процесса, который мы сами запустили
    FOUND-PID program_id @ =
    IF
      \ если совпадает, значит наш процесс ещё живёт, обнуляем переменную:
      my_flag OFF
    ELSE
      \ если не совпадает, значит этот процесс запустили не мы, убиваем:
      FOUND-PID N>S KILL
    THEN
  ;FOR-PROCS
  \ если мы не нашли нашего процесса, значит пора выходить из цикла:
  my_flag @
UNTIL
)#
User avatar
Morituruz
 
Posts: 725
Joined: Sun, 14 Oct 2007, 01:51


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 5 guests