Форум программистов, компьютерный форум CyberForum.ru

Как закрыть окно чужого процесса? - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 64, средняя оценка - 4.64
slamer
Сообщений: n/a
05.06.2007, 19:56     Как закрыть окно чужого процесса? #1
Добрый день.
Объясните пожалуйста, почему по
C++
1
     OutWnd->PostMessage( WM_CLOSE, 0, 0 );
не хочет закрываться окно?
Ситуация следующая:
1) В Spy++ у двух окон один и тот - же PROCESS ID, один и тот же THREAD ID.
2) Хэндл нужного окна известен, найден через FindWindow()
Проблема в том, что оно ни каким способом не хочет закрываться.
В чем может быть причина?
Спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bazile
57 / 33 / 19
Регистрация: 15.03.2007
Сообщений: 6,911
06.06.2007, 14:04     Как закрыть окно чужого процесса? #2
Попробуй через функцию WinAPI это сделать: SendMessage(hwnd, WM_CLOSE, 0, 0);
slamer
Сообщений: n/a
06.06.2007, 18:51     Как закрыть окно чужого процесса? #3
Пробовал, но дело вот в чем: (Забыл написать, проект MFC, VS 2005.)
У меня функция, закрывающая окно описана в классе главного окна.
Поэтому если вызвать SendMessage в контексте этой функции, то SendMessage не имеет одного первого параметра - hWnd.
( Видимо предпологая, что она вызывается для объекта текущего класса. )
И поэтому я делаю следующим образом:
C++
1
2
3
CWnd *MyWnd;
MyWnd = FindWindow(...);
MyWnd->PostMessage(...); ( или  MyWnd->SendMessage(...); )
И это не срабатывает.
Не могу понять почему, т.к. другие окна закрываются.
bazile
57 / 33 / 19
Регистрация: 15.03.2007
Сообщений: 6,911
06.06.2007, 19:29     Как закрыть окно чужого процесса? #4
Чтобы вызвать API функцию добавь перед ее именем двойное двоеточие, чтобы указать что эта функция из глобальной области видимости.
::SendMessage(hwnd, .... );
slamer
Сообщений: n/a
06.06.2007, 20:32     Как закрыть окно чужого процесса? #5
Спасибо, уже кое что.
Только теперь закрывается не только нужное окошко другого приложения, но и и само приложение.
Уф, а если сделать сообщение именно этому окну Alt+F4, может так сработает?
Спасибо еще раз, буду ковырять дальше.
genok
0 / 0 / 0
Регистрация: 24.02.2007
Сообщений: 30
08.06.2007, 16:12     Как закрыть окно чужого процесса? #6
ну так если это окошко - главное окно приложения, то оно (приложение) и должно завершиться по его закрытию. попробуй скрывать его, тогда и на экране его не будет и приложение не завершится
slamer
Сообщений: n/a
28.06.2007, 18:19     Как закрыть окно чужого процесса? #7
По идее оно не является главным окном приложения.
Как я уже писал главное окно приложения и окно которое нужно закрыть имеют разные hWnd, но одинаковый processID судя по Spy++.
Так что пока решение не нашлось.
genok
0 / 0 / 0
Регистрация: 24.02.2007
Сообщений: 30
30.06.2007, 12:04     Как закрыть окно чужого процесса? #8
еще раз... скрывать не получается? в чем проблема скрыть нужное окно?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2007, 16:15     Как закрыть окно чужого процесса?
Еще ссылки по теме:

C++ Как вызвать функцию чужого приложения, как подменить значения аргументов функции?
Библиотеки процесса, защита от изменения процесса C++
Как закрыть окно opengl не закрывая консольного окна c++? C++
C++ Как закрыть скайп?
C++ Как сделать окно (окно домика) в пространстве, как на изображении?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
slamer
Сообщений: n/a
11.07.2007, 16:15     Как закрыть окно чужого процесса? #9
Скрыть то его без проблем, только нужно именно закрыть.
Т.к. суть приложения - мониторить эти окошки, соответственно они будут появляться снова и копить их не приемлемо.
Yandex
Объявления
11.07.2007, 16:15     Как закрыть окно чужого процесса?
Ответ Создать тему
Опции темы

Текущее время: 22:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru