Code: |
library lib2; uses windows, messages; var pt : TPoint; theHook : THandle; function MouseHook(nCode, wParam, lParam : integer) : Lresult; stdcall; var msg : PMouseHookStruct; w : THandle; style : integer; Begin if nCode<0 then begin result := CallNextHookEx(theHook, nCode, wParam, lParam); Exit; end; msg := PMouseHookStruct(lParam); case wParam of WM_MBUTTONDOWN : pt := msg^.pt; WM_MBUTTONUP : begin w := WindowFromPoint(pt); style := GetWindowLong(w, GWL_EXSTYLE); if (style and WS_EX_TOPMOST) <> 0 then begin //уже поверх всех - сделать обычным ShowWindow(w, sw_hide); SetWindowPos(w, HWND_NOTOPMOST, 0,0,0,0, SWP_NOMOVE or SWP_NOSIZE OR SWP_SHOWWINDOW); end else begin //сделать поверх остальных ShowWindow(w, sw_hide); SetWindowPos(w, HWND_TOPMOST, 0,0,0,0, SWP_NOMOVE OR SWP_NOSIZE OR SWP_SHOWWINDOW); end; end; end; Result := CallNextHookEx(theHook, nCode, wParam, lParam); End;
procedure Start; begin theHook := SetWindowsHookEx(wh_mouse, @mouseHook, hInstance, 0); if theHook = 0 then messageBox(0,'Error!','Error!',mb_ok); end;
procedure Remove; begin UnhookWindowsHookEx(theHook); end;
exports Start index 1 name 'Start', Remove index 2 name 'Remove'; end. |
(С) Автор статьи: Sergey Stolyarov
Автор: StayAtHome
- << Назад
- Вперёд
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!