У меня все происходит в юзермоде HWND GetShellWindow (); Как получив информацию из GetSelection и GetText, прибавить к каждому символу определенное значение, что-бы в итоге получить несколько "левых" символов, но на ввод в этом окне символы не повлияли. Т.е. фактически сделать ловушку для кeйлoгeра.
Вобще, есть функция SetWindowLong, заменяешь стандартную процедуру обработки сообщений на свою, юзерскую, и че хочешь, то и делаешь. В MSDN параметры описаны, главное в юзерской процедурке, если входные параметры не соотвествуют нужным, передать старой процедуре, адрес которой возвращается при вызове SetWindowLong
fourty_fourty, например так? Код (Text): hWnd = FindWindow(NULL, "Opera"); OldWindowProc = GetWindowLong(hWnd, GWL_WNDPROC); NewWindowProc = SetWindowLong(hWnd, GWL_WNDPROC, (long)WindowProc);
Код (Text): WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM ... invoke SetWindowLong,hWnd,GWL_WNDPROC,addr NewWndProc mov OldWndProc,eax ... ret WndProc endp NewWndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM ... {тело новой процедуры} ... invoke CallWindowProc,OldWndProc,hWnd,uMsg,wParam,lParam ret EditWndProc endp