Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
Тыщ ©   (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 вся ветка

Форум: "WinAPI";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.062 c
3-1238361532
TheEd
2009-03-30 01:18
2010.08.27
как "вытянуть" описаниея полей в DisplayLabel


15-1267560202
TUser
2010-03-02 23:03
2010.08.27
БАК: статус и ожидания


2-1272851119
Delphist2
2010-05-03 05:45
2010.08.27
присваивание обработчика


15-1264632229
Германн
2010-01-28 01:43
2010.08.27
RDTSC и её использование в VB 2008 Express Edition


2-1270652923
Vincero
2010-04-07 19:08
2010.08.27
Отловить состояние клавиши [Shift] при нажатии на пункт PopupMenu





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский