Как по хэндлу окна определить что оно еще живое?
От: algri  
Дата: 10.06.03 06:47
Оценка: +1
Сабж, собственно.
Re: Как по хэндлу окна определить что оно еще живое?
От: Ed.ward Россия  
Дата: 10.06.03 06:59
Оценка:
Здравствуйте, algri, Вы писали:

A>Сабж, собственно.


[msdn]
IsWindow
[/msdn]

Ed.ward
... << RSDN@Home 1.0 beta 7a >>
Re: Как по хэндлу окна определить что оно еще живое?
От: Alexmoon Украина  
Дата: 10.06.03 07:21
Оценка:
Здравствуйте, algri, Вы писали:

if(!::IsWindow(hWnd)) throw T("Окно уже точно не живое");
Re: Как по хэндлу окна определить что оно еще живое?
От: Кодт Россия  
Дата: 10.06.03 09:09
Оценка: 5 (1)
Здравствуйте, algri:

enum { WND_OK, WND_NOT_EXISTS, WND_PING_TIMEOUT, WND_PING_ERROR } WNDTEST;
WNDTEST IsWindowAlive(HWND hWnd, UINT timeout = 1000)
{
  if(!IsWindow(hWnd))
    return WND_NOT_EXISTS;
  if(0 == SendMessageTimeout(hWnd, WM_NULL, 0, 0, SMTO_ABORTIFHUNG, timeout, NULL)) // пинг!
  {
    if(GetLastError() == 0)
      return WND_PING_TIMEOUT;
    return WND_PING_ERROR;
  }
  return WND_OK;
}

Примерно так.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.