Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Перезапуск своей программы.  (Прочитано 12540 раз)
0 Пользователей и 1 Гость смотрят эту тему.
alex87
Постоялец

ru
Offline Offline
Пол: Мужской

« : 25-09-2009 02:45 » new

Каким методом можно перезапустить свою программу? Желательно на примере.

« Последнее редактирование: 25-09-2009 06:17 от Sel » Записан

Улыбаюсь Ага
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 25-09-2009 03:06 » 


см. тут (ссылка)
Записан

alex87
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 30-09-2009 05:16 » 

ага, с этим понятно, а вот другой вопрос:
как закрыть другую программу из своей (корректно)
я понимаю что надо посылать другой программе WM_CLOSE... вот и проблема как это сделать???
ну и в той программе должен по идее быть приемник этого сообщения?
Записан

Улыбаюсь Ага
zubr
Гость
« Ответ #3 : 30-09-2009 06:21 » 

WM_CLOSE не всегда срабатывает. Если у программы есть системное меню (кнопка Close) то надежнее посылать WM_SYSCOMMAND с WParam = SC_CLOSE - это аналогично действию пользователя по нажатию кнопки Close. Чтобы послать сообщение окну надо найти его хендл, к примеру с помощью функции FindWindow
Записан
alex87
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 30-09-2009 06:51 » 

найти окно вроде так:
Код:
HWND hWnd = FindWindow("TSYSLOGserver",NULL); 
if (hWnd!=NULL)
//тут какая функция отправления Shell какая-то? или нет?
Записан

Улыбаюсь Ага
alex87
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 30-09-2009 07:33 » 

все, разобрался :

Код:
SendMessage(hWnd,WM_SYSCOMMAND,SC_CLOSE,0);
спасибо за совет!)
Записан

Улыбаюсь Ага
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #6 : 30-09-2009 08:49 » 

правильнее будет PostMessage() - ты ведь не уверен, что процесс ещё работает Улыбаюсь
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines