Задать вопрос
@Fly3110
web developer

Как закрыть фоновый экземпляр программы?

Всем привет.

Лет 14 не писал под С++, тут пришлось.

Суть такая, есть фоновая программа app.exe (моя).
Надо реализовать функционал, чтобы при запуске app.exe stop уже запущенный фоновый процесс завершался.

Поиск в гугле по "C++ close another app instance" выдает рецепты с поиском приложения по заголовку окна. Но мне этот вариант не нравится. Хочется однозначности, как в . *nix, когда прога сохраняет свой pid в файл.

Какое решение принято в Windows программировании?

Спасибо.
  • Вопрос задан
  • 94 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
@res2001
Developer, ex-admin
Используйте любой механизм межпроцессного взаимодействия (IPC) - сокеты, каналы, именованные мьютексы, общая память, ...
Просто посылаете сообщение второму процессу, чтоб он закрылся.
Ответ написан
Комментировать
Какое решение принято в Windows программировании?

Псевдокод:
if(args!="stop")
{
pid = GetCurrentProcessId();
store_to_file(pid);
}
else {
pid = get_pid_from_file();
kill(pid);
}

GetCurrentProcessId(), Terminating a Process
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы