Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Запустил раз — включилось, запустил второй — выключилось   Найти похожие ветки 

 
Тыщ ©   (2009-02-28 23:12) [0]

Есть программа, не создающая никаких окон и работающая в фоновом режиме.
Нужно сделать так, чтоб при повторном запуске она только завершала свой предыдущий процесс.

Сделал event"ами, насколько хорош такой способ?

uses Windows;

var
  Ev: THandle;
begin
  Ev := CreateEvent(nil, true, false, "unique123");
  if GetLastError() = ERROR_ALREADY_EXISTS then
  begin
    SetEvent(Ev);
    Exit;
  end;
  MessageBox(0, "Started.", "", 0);
  repeat
    //DoSomeTask();
    if WaitForSingleObject(Ev, 50) = 0 then break;
  until false;
  MessageBox(0, "Stopped.", "", 0);
  CloseHandle(Ev);
end.


 
Германн ©   (2009-03-01 00:27) [1]


> Тыщ ©   (28.02.09 23:12)
>
> Есть программа, не создающая никаких окон и работающая в
> фоновом режиме.
> Нужно сделать так, чтоб при повторном запуске она только
> завершала свой предыдущий процесс.
>

А что есть "фоновый режим"?
А чем данная задача отличается от стандартной задачи "контроля запуска второй копии приложения"?


 
Медвежонок Пятачок ©   (2009-03-01 00:44) [2]

батник, в котором 2 строки

taskkill
myproga.exe


 
Тыщ ©   (2009-03-01 22:41) [3]

Жду нормальных ответов.


 
Медвежонок Пятачок ©   (2009-03-02 00:01) [4]

программирование ради программирования


 
Медвежонок Пятачок ©   (2009-03-02 00:07) [5]

Нужно сделать так, чтоб при повторном запуске она только завершала свой предыдущий процесс.

Сделал event"ами, насколько хорош такой способ?


Он хорош всем кроме того, что не делает то, что надо.
А именно не завершает предыдущий процесс, а ничего не делает пока тот сам не завершится.


 
Тыщ ©   (2009-03-02 01:37) [6]

> А именно не завершает предыдущий процесс, а ничего не делает пока тот сам не завершится.

Скомпилируй, посмотри, удивись.


 
Германн ©   (2009-03-02 02:42) [7]


> Тыщ ©   (01.03.09 22:41) [3]
>
> Жду нормальных ответов.
>

Жду нормальных вопросов.


 
KSergey ©   (2009-03-02 08:30) [8]

> Тыщ ©   (02.03.09 01:37) [6]
> Скомпилируй, посмотри, удивись.

и где здесь "она только завершала свой предыдущий процесс"?


 
Медвежонок Пятачок ©   (2009-03-02 09:05) [9]

и где здесь "она только завершала свой предыдущий процесс"?

"Это ему снится"


 
Anatoly Podgoretsky ©   (2009-03-02 09:59) [10]

Да ладно, все нормально, не каждому дано понять.


 
KSergey ©   (2009-03-02 10:46) [11]

> Anatoly Podgoretsky ©   (02.03.09 09:59) [10]
> Да ладно, все нормально, не каждому дано понять.

однако да, любезно дает возможность узнать о желании завершить :)


 
Anatoly Podgoretsky ©   (2009-03-02 11:06) [12]

Ну не только дает, но и делает, а MessageBox наверно для отладки.


 
Григорьев Антон ©   (2009-03-02 11:21) [13]

Если у вас открыты сессии одновременно нескольких пользователей, то повторный запуск программы не приведёт к выгрузке первой копии, если запуск выполняется из разных сессий. Возможно, именно так вы всё и задумывали. Но если вам нужно, чтобы запуск программы из-под другой сессии прекращал работу программы в первой сессии, имя события должно начинаться с "Global\".


 
Тыщ ©   (2009-03-02 15:55) [14]

> Григорьев Антон ©   (02.03.09 11:21) [13]

Спасибо! Учту.



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.073 c
2-1275672222
DROWSY
2010-06-04 21:23
2010.08.27
Post на TIBDataSet.


15-1264942022
Константинов
2010-01-31 15:47
2010.08.27
Безопасность ПК


15-1268204901
DOOM
2010-03-10 10:08
2010.08.27
что можно узнать по ip-адресу?


2-1275332438
Delphi
2010-05-31 23:00
2010.08.27
Как это будет на Delphi?


10-1167245489
red123
2006-12-27 21:51
2010.08.27
com сервер с формой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский