Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.12.2011, 15:23
serebrus serebrus вне форума
Прохожий
 
Регистрация: 22.12.2011
Сообщения: 26
Репутация: 10
По умолчанию "Блокировка" мыши

Привет форумчане

Нужная программа находится функцией FindWindow. Как можно блокировать нажатие (правой) кнопки мыши именно для этой программы (окна)?
Ответить с цитированием
  #2  
Старый 24.12.2011, 16:21
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Я бы делал через Hook. На этом форуме или в гугле полно примеров.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 25.12.2011, 10:40
serebrus serebrus вне форума
Прохожий
 
Регистрация: 22.12.2011
Сообщения: 26
Репутация: 10
По умолчанию

Bargest, а можно в примерах объяснить?
Ответить с цитированием
  #4  
Старый 25.12.2011, 19:15
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Для этого есть специальные места. Просто мне писать трактаты по полному описанию нет смысла, тем более за меня это уже сделали.
Главный тык
Тык 2
Тык 3
И т.д.
И на delphisources было не раз:
Тык 4
Тык 5
Только не советую "тупо копипастить".
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 25.12.2011 в 19:19.
Ответить с цитированием
  #5  
Старый 27.12.2011, 10:04
serebrus serebrus вне форума
Прохожий
 
Регистрация: 22.12.2011
Сообщения: 26
Репутация: 10
По умолчанию

Bargest, по книге "Delphi-Глазами хакера" нашел готовый код и изменил его для Калькулятора (результат: в калькуляторе не должна "нажиматься" правая кнопка мыши) так:

PHP код:
var
  
Form1TForm1;
  
wndHWND;
  
bBoolean;

  
procedure RunStopHook(State BooleanWndHWNDstdcall;
  
external 'hackpass.dll' index 1;

implementation

{$R *.dfm}

procedure TForm1.FormShow(SenderTObject);
begin
wnd
:=FindWindow(nil'Calculator');
if 
wnd<>0 then
 begin
  b
:=True;
  
RunStopHook(Truewnd);
  
ShowMessage('Find');
 
end;
end;

procedure TForm1.FormClose(SenderTObject; var ActionTCloseAction);
begin
if b then RunStopHook(Falsewnd);
end;

end

Вот сама библиотека:

PHP код:
library hackpass;

uses WindowsMessages;
var
 
SysHook HHook 0;
 
Wnd Hwnd 0;
 
hd  HWND 0;

function 
SysMsgProc(code integerwParam word;
lParam longint) : longintstdcall;
begin
 CallNextHookEx
(SysHookCodewParamlParam);
 if 
code HC_ACTION then
  begin
   Wnd 
:= TMsg(Pointer(lParam)^).hwnd;
   if (
TMsg (Pointer (lParam)^).message WM_RBUTTONDOWN) and (Wnd=hdthen
    SendMessage
(WndWM_CANCELMODE00);
    
//НО ВСЕ ТАКИ КОНТЕКСТНОЕ МЕНЮ ОТОБРАЖАЕТСЯ
  
end;
end;

procedure RunStopHook(StateBooleanhHWNDexportstdcall;
begin
if State=true then
 begin
  hd
:=h;
  
SysHook := SetWindowsHookEx(WH_GETMESSAGE, @SysMsgProcHInstance0);
 
end else
 
begin
  UnhookWindowsHookEx
(SysHook) ;
  
SysHook := 0;
 
end;
end;

exports RunStopHook index 1;
begin
end


НО ВСЕ ТАКИ КОНТЕКСТНОЕ МЕНЮ ОТОБРАЖАЕТСЯ, как можно блокировать это?
Ответить с цитированием
  #6  
Старый 27.12.2011, 16:29
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Я бы сделал иначе. Если окно под мышью - калькулятор, то НЕ вызываем следующий хук (callNextHookEx), иначе вызываем.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:00.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter