информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[win32] отлов wm_moving и wm_sizing. 02.08.07 09:37  
Автор: Vedrus <Serokhvostov Anton> Статус: Member
Отредактировано 02.08.07 09:39  Количество правок: 1
<"чистая" ссылка>
Нужно отловить выше названные сообщения ко всем окнам системы, но что-то не ловятся. WM_MOVE, WM_SIZE ловятся, а эти нет. Вот код (MS VS 7.1)

DLL
#include <windows.h>
#include "DetectWindow.h"

HHOOK hhookGetMsg;	// Значение устанавливает главная программа
HCURSOR hcurCursor;
static BOOL blah = FALSE;

BOOL WINAPI DllMain(HINSTANCE hDll, DWORD fdwReason, LPVOID lpvReserved)
{
	return TRUE;
}

EXPORT LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
/* Перехватывает все сообщения всех окон */
{
	MSG *msg = (MSG *) lParam;	// Перехваченное сообщение

	switch (msg->message)
	{
	case WM_SIZING:
	case WM_MOVING:
		MessageBox(msg->hwnd, "Ура, Товарищи!", "Ура!", MB_OK);
		break;
	}

	return CallNextHookEx(hhookGetMsg, nCode, wParam, lParam);
}

---

Сама программа
#include <windows.h>

HOOKPROC hkprcGetMsg;			// Процедура-перехватчик
static HINSTANCE hinstDLL;		// Хэндл библиотеки с процедурой-перехватчиком
static HHOOK hhookGetMsg;		// Хэндл хука (статиками обзываются глобальные переменные)

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow)
{
	hinstDLL = LoadLibrary((LPCTSTR) "DetectWindow.dll"); 
	hkprcGetMsg = (HOOKPROC) GetProcAddress(hinstDLL, "_GetMsgProc@12"); 

	hhookGetMsg = SetWindowsHookEx(
						WH_GETMESSAGE,  // Перехват размерных сообщений
						hkprcGetMsg,	// Перехватчик
						hinstDLL,		// DLL перехватчика
						0);				// Перехватывать все потоки
	
// Не мешать остальным прогам работать (спать) //
	while (TRUE) Sleep(100000000);

	return TRUE;
}

---

Хуки уже все возможные перебрал: WH_CALLWNDPROC, WH_CBT, WH_GETMESSAGE. Ничего не помогает. Как лечить?
1




Rambler's Top100
Рейтинг@Mail.ru


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