информационная безопасность
без паники и всерьез
 подробно о проекте
Где водятся OGRыСетевые кракеры и правда о деле ЛевинаАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Критическая уязвимость UEFI позволяет... 
 Японский хостинг попросил клиентов... 
 Компрометация eMudhra вынудила... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
А ты hWnd тот прописываешь? У меня все пашет... 21.08.01 14:17  Число просмотров: 1843
Автор: Glory <Mr. Glory> Статус: Elderman
<"чистая" ссылка>
<programming>
[win32] sendmessage(hwnd, wm_close, 0, 0); 21.08.01 12:38  
Автор: dzen Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Че то не очень понятно, почему сабж не закрывает окно? PostMessage понятное дело закрывает. Окно принадлежит другой нити (и даже другому процессу).
А ты hWnd тот прописываешь? У меня все пашет... 21.08.01 14:17  
Автор: Glory <Mr. Glory> Статус: Elderman
<"чистая" ссылка>
hWnd тот, если закрывается по PostMessage. Тогда дело в закрываемом процессе 21.08.01 14:31  
Автор: ukv Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Че то не очень понятно, почему сабж не закрывает окно?
> PostMessage понятное дело закрывает. Окно принадлежит
> другой нити (и даже другому процессу).

Я тоже опробовал на своих программках - прекрасно закрывается и на SendMessage. Скорее, дело в закрываемом процессе. Он, случаем, не на MFC написан?

Процесс просто не закрывается, без каких-либо сообщений об ошибках?
Есть ли исходники?
Должен ли он делать что-нибудь на WM_CLOSE, кроме DestroyWindow
(например, дописывает на диск незакрытые файлы, заносит состояние в реестр, выводит MessageBox "Вы действительно хотите закрыть..." )?
[Win32] исходник 21.08.01 17:18  
Автор: dzen Статус: Незарегистрированный пользователь
<"чистая" ссылка>
вот исходник
WndToDel - CArray<CString, CString>
и содержит название класса окна iexplorera

BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
TCHAR buf[100];
CString str;
int len = CBar::WndToDel.GetSize();
int i;

GetClassName(hwnd, buf, 100);
str = buf;
str.MakeUpper();

for(i=0; i<len; i++)
if(str == CBar::WndToDel[i])
{
::PostMessage(hwnd, WM_CLOSE, 0, 0);
// ::SendMessage(hwnd, WM_CLOSE, 0, 0);
break;
}
return TRUE;
}

BOOL CBar::CloseWnd()
{
EnumWindows(EnumWindowsProc, 0);
return TRUE;
}

PostMessage нормально закрывает все окна explorera, а SendMessage нет.
Я бы все-таки использовал PostMessage, но с ожиданием выполнения 21.08.01 18:34  
Автор: ukv Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Вообще-то меня больше интересовал исходник закрываемого процесса. Но если это Internet Explorer, то вопрос отпадает.
Если я правильно понял, надо послать WM_CLOSE с гарантией того, что окно будет закрыто (или хотя бы с гарантией что сообщение будет полностью обработано).
В таких случаях, когда по какой-то причине нельзя пользоваться SendMessage, я делаю так:
DWORD pid;
HANDLE hproc;
GetWindowThreadProcessId(hwnd,&pid);
hproc = OpenProcess(PROCESS_ALL_ACCESS,TRUE,pid);
::PostMessage(hwnd, WM_CLOSE, 0, 0);
WaitForInputIdle(hproc,INFINITE);
CloseHandle(hproc);

К сожалению, на моей рабочей машине Internet Explorer перестал работать недели 2 назад (чистил реестр и удалил что-то, без чего он теперь работать отказывается). Нет возможности посмотреть, как он ведет себя на SendMessage(...WM_CLOSE,...). Хотя из моих программ по крайней мере Windows Commander не закрылся по SendMessage (срубился на недопустимой операции).
Я бы все-таки использовал PostMessage, но с ожиданием выполнения 24.08.01 11:29  
Автор: dzen Статус: Незарегистрированный пользователь
<"чистая" ссылка>
спасибо, вроде пашет
1





Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach