MSG msg;
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}
Как определить, что на экране появляется новое окно
Обратите внимание, скриншот каждого окна нужно делать лишь 1 раз, сразу после его создании, а не при каждой активации.
Реализация на С++.
Глобальный хук на WM_CREATE ?
А конкретный пример кода можно?
Код:
Поищи в Инете: перехват сообщений Windows,
ну а попроще: можно по таймеру вызывать API-функцию:
EnumWindows(...)
Можно пример кода в контексте сообщения № 4 этой темы?
Цитата: Shalfey
Можно пример кода в контексте сообщения № 4 этой темы?
Неправильно. Сообщения нужно перехватывать с помощью функции SetWindowsHookEx.
EnumWindows(...) это если окно не скрыто
или делать его скрин с помощью API /*HWND FwHND = GetForegroundWindow();*/ тоесть ждать когда пользователь захочет воспользоваться программой и певедёт фокус на новое окно. А если никто ничего не скрывает то на мой взгляд лучше всего подходит EnumWindows(...) со своим калбеком, чем хук, даже с 1ms на таймере нагрузка ничтожна...