Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Закрыть приложение, Не закрывает 
:(
    Опции темы
Папараццы
Дата 23.10.2007, 13:12 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 475
Регистрация: 18.9.2006
Где: Баку

Репутация: нет
Всего: нет



Мне надо уничтожить процесс со своей программы.. То есть закрыть другую программу.  Не получается закрыть программу с использованием 
TerminateProcess(00000C2C, 0); 
Где 00000С2С это наш процесс айди.
Ошибка: E2121 Function call missing)
Также через SendMessage(00000C2C , WM_DESTROY, 0, 0);
Таже ошибка. Что делать ?? В чем ошибка.. 



--------------------
/*---------------------------------------------------------------------------------*/
PM MAIL WWW ICQ MSN   Вверх
dumb
Дата 23.10.2007, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



Цитата(Папараццы @  23.10.2007,  14:12 Найти цитируемый пост)
Что делать ?
ознакомиться с форматом записи чисел, как минимум. 0x00000C2C.
далее - ты что в одну, что в другую функцию суешь pid процесса, в то время как первой нужен хэндл процесса(получаемый из OpenProcess), а второй - хэндл окна(FindWindow/EnumWindows/etc).

за примерами - фпоиск по слову TerminateProcess или WM_CLOSE.
PM MAIL   Вверх
Папараццы
Дата 23.10.2007, 14:51 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 475
Регистрация: 18.9.2006
Где: Баку

Репутация: нет
Всего: нет



Процесс ID постоянно меняется..  Как найти программу если незнаем не пид не хендл ? 

Это сообщение отредактировал(а) Папараццы - 23.10.2007, 15:09


--------------------
/*---------------------------------------------------------------------------------*/
PM MAIL WWW ICQ MSN   Вверх
Папараццы
Дата 23.10.2007, 15:14 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 475
Регистрация: 18.9.2006
Где: Баку

Репутация: нет
Всего: нет



При 
Код

SendMessage(0x00000CC4, WM_DESTROY, 0, 0);


Can not convert 'int' to 'void*'


--------------------
/*---------------------------------------------------------------------------------*/
PM MAIL WWW ICQ MSN   Вверх
0lmer
Дата 24.10.2007, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 3.12.2006

Репутация: нет
Всего: -1



Цитата(Папараццы @  23.10.2007,  14:51 Найти цитируемый пост)
Как найти программу если незнаем не пид не хендл ?


Синтаксис 
HWND FindWindow
(
LPCTSTR lpClassName,    // указатель на имя класса
LPCTSTR lpWindowName    // указатель на имя окна
);

Параметры 

lpClassName
Указывает на строку с нулевым символом в конце, которая определяет имя класса или - атом, который идентифицирует строку имени класса. Если этот параметр - атом, он должен быть общим атомом, созданным предыдущим вызовом функции GlobalAddAtom. Атом - это 16-разрядное значение, в котором должно быть помещено в младшем слове lpClassName; старшее слово должно быть нулевое.
lpWindowName
Указывает на строку с нулевым символом в конце, которая определяет имя окна (заголовок окна). Если этот параметр - ПУСТО (NULL), полное соответствие имени окна.

Возвращаемые значения
Если функция завершилась успешно, возвращаемое значение - дескриптор окна, которое имеет определенное имя класса и имя окна. Если функция терпит неудачу, возвращаемое значение - ПУСТО (NULL). Чтобы получить дополнительные данные об ошибках, вызовите GetLastError.
PM   Вверх
Папараццы
Дата 24.10.2007, 15:21 (ссылка)  | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 475
Регистрация: 18.9.2006
Где: Баку

Репутация: нет
Всего: нет



Код

HWND hwnd;
 hwnd = FindWindow(NULL,"notepad.exe");
 if ( hwnd != NULL)
{
SendMessage(hwnd,WM_DESTROY,0,0);
}

Будет ли это работать ? 


--------------------
/*---------------------------------------------------------------------------------*/
PM MAIL WWW ICQ MSN   Вверх
0lmer
Дата 27.10.2007, 13:38 (ссылка)   | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 3.12.2006

Репутация: нет
Всего: -1



Код


HWND hwnd;
 hwnd = FindWindow(NULL,"Безымянный - Блокнот");
 if ( hwnd != NULL)
{
SendMessage(hwnd,WM_DESTROY,0,0);

}



скомпилил в билдере, работает. только если заголовок другой (например файл открыт) то не пашет.
PM   Вверх
THandle
Дата 27.10.2007, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 25
Всего: 372



0lmer,  В состав билдера(у меня BDS2006) входит программа ws32.exe с её помощью можно узнать класс окна.

PM   Вверх
Папараццы
Дата 30.10.2007, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 475
Регистрация: 18.9.2006
Где: Баку

Репутация: нет
Всего: нет



А вот допустим у меня что то введено  и при закрытие в виде  WM_CLOSE он просит сохранить или не сохранить... Как нажать эту кнопку ? Например кнопку НЕТв диологовом окне "Блакнот" ? 


--------------------
/*---------------------------------------------------------------------------------*/
PM MAIL WWW ICQ MSN   Вверх
pandrew
Дата 30.10.2007, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 27.3.2006

Репутация: 3
Всего: 3



Цитата(Папараццы @  30.10.2007,  14:39 Найти цитируемый пост)
А вот допустим у меня что то введено  и при закрытие в виде  WM_CLOSE он просит сохранить или не сохранить... Как нажать эту кнопку ? Например кнопку НЕТв диологовом окне "Блакнот" ?  

Уже упоминали прогу - ws32. Запусти ее и сможешь отследить весь поток сообщений, получаемых, к примеру notepad, при принудительном закрытии.
PM MAIL   Вверх
Папараццы
Дата 31.10.2007, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 475
Регистрация: 18.9.2006
Где: Баку

Репутация: нет
Всего: нет



Ну я получил Child и т.д. У меня вопрос как нажать кнопку.. WM_ACTIVATE или что ? 


--------------------
/*---------------------------------------------------------------------------------*/
PM MAIL WWW ICQ MSN   Вверх
0lmer
Дата 31.10.2007, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 3.12.2006

Репутация: нет
Всего: -1



Цитата(Папараццы @  30.10.2007,  14:39 Найти цитируемый пост)
 и при закрытие в виде  WM_CLOSE он просит сохранить или не сохранить... Как нажать эту кнопку ?


а если попробовать не WM_CLOSE а WM_DESTROY? 
Я точно не уверен но может не будет спрашивать про сохранение.

PM   Вверх
Папараццы
Дата 31.10.2007, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 475
Регистрация: 18.9.2006
Где: Баку

Репутация: нет
Всего: нет



Нет просто после нажатие на ОК в моем приложение будет идти запись в базу данных.


--------------------
/*---------------------------------------------------------------------------------*/
PM MAIL WWW ICQ MSN   Вверх
Папараццы
Дата 24.4.2008, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 475
Регистрация: 18.9.2006
Где: Баку

Репутация: нет
Всего: нет



Что делать если WM_DESTROY не работает? А WM_CLOSE закрывает приложение но приложение просит потверждение. Как быть? 


--------------------
/*---------------------------------------------------------------------------------*/
PM MAIL WWW ICQ MSN   Вверх
586
Дата 24.4.2008, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 57
Всего: 146



Для MessageBox'a:
Код
SendMessage(hWnd, WM_COMMAND, IDYES /*IDNO*/ /*IDCANCEL*/, 0);


Это сообщение отредактировал(а) 586 - 24.4.2008, 16:41
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0920 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.