Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Блокировка правой кнопки мыши...


Автор: JohnnY 29.8.2005, 21:41
Подскажите please, код для блокировки кнопок мыши... Спасибо... smile

Автор: Pakshin A. S. 29.8.2005, 21:43
http://vingrad.ru/DELPHI-DLP-000489

Почитай... Но вообще я подозреваю, что тут имеем дело с хулиганом... так что не есть гуд ваш замысел...

Автор: JohnnY 29.8.2005, 22:01
Цитата(Pakshin @ 29.8.2005, 21:43)
Но вообще я подозреваю, что тут имеем дело с хулиганом...

Просто хочу создать "программу-шутку", для друга smile

Добавлено @ 22:02
Цитата(Pakshin @ 29.8.2005, 21:43)
http://vingrad.ru/DELPHI-DLP-000489

Эта тема не работает пытался...

Автор: FRAGNATIC 29.8.2005, 23:51
Цитата
Эта тема не работает пытался...

это не тема а линк на FAQ ! там как отрубить клаву и мышку
а те я так понимаю надо ток правую кнопку)
мож хук заюзать
Код

library MouseTwoHook;
Uses Windows,Messages, Controls;

Var SysHook:HHook=0; 

Function SysMsgProc(Code:Integer; WParam:LongInt; LParam:LongInt):LongInt; stdcall; 
Var Msg:TMessage;
Begin
 IF Code=HC_ACTION then
  Case TMsg(Pointer(LParam)^).Message OF
   WM_RBUTTONDOWN,WM_RBUTTONUP,WM_RBUTTONDBLCLK:
   begin
     TMsg(Pointer(LParam)^).Message:=WM_NULL;
   end;
   else Result:=CallNextHookEx(SysHook,Code,WParam,LParam);
  End;
end;

procedure Hook(Flag:Boolean); export; stdcall;
Begin
 IF Flag then SysHook:=SetWindowsHookEx(WH_GETMESSAGE,@SysMsgProc,HInstance,0) Else
  Begin
   UnhookWindowsHookEx(SysHook);
  End;
End;

exports Hook;

{$R *.res}

begin
end.

Автор: JohnnY 30.8.2005, 00:28
А можно как-нить с отвязкой от длл?

Автор: JohnnY 30.8.2005, 00:40
Или поподробнее как использовать этот хук, какие процедуры применять и т.д...

Автор: FRAGNATIC 30.8.2005, 00:53
Цитата
А можно как-нить с отвязкой от длл?

можно точного примера сейчас дать не могу! позже тока если
Цитата
Или поподробнее как использовать этот хук, какие процедуры применять и т.д..

Код

type 
  MyProcType = procedure (Flag: Boolean); stdcall;
--------------------
var
    HDLL:HWND;
    started: boolean;
--------------------
procedure TForm1.OnOffClick(Sender: TObject);
Var Hook: MyProcType;
begin
 if started then
 begin
   @Hook:=nil;
   IF HDLL>HINSTANCE_ERROR then
   Begin
     @Hook:=GetProcAddress(HDLL,'Hook');
     Hook(False);
   End;
  started:=false;
 end
 else begin
   @Hook:=nil;
   HDLL:=LoadLibrary(PChar('Mouse2Hook.dll'));
   IF HDLL>HINSTANCE_ERROR then
   Begin
     @Hook:=GetProcAddress(HDLL,'Hook');
     Hook(True);
   End else MessageDlg('Ошибка загрузки DLL.',mtError,[mbIgnore],0);
  started:=true; 
 end
end;


Автор: JohnnY 30.8.2005, 01:11
FRAGNATIC, большое спасибо!!! с отвязкой от длл не надо... Ещё раз спасибо!!!

Автор: FRAGNATIC 30.8.2005, 01:17
Цитата
FRAGNATIC, большое спасибо!!! с отвязкой от длл не надо... Ещё раз спасибо!!!

да не за что!
Добавлено @ 01:21
скачай ДРКБ
этот код от туда!
не помню правда переделывал ли я его! проек писал больше чем пол года назад! сразу из проекта и взял!
В коде не чего сложно разобратся думаю сможешь потом и сам такое писать сможешь!!!

Автор: JohnnY 30.8.2005, 21:19
Fragnatik, а где DRKB скачать? Дай ссылку, please...
Fragnatik, там много информации по програмированию?

Автор: Pakshin A. S. 30.8.2005, 21:24
Цитата(JohnnY @ 30.8.2005, 22:19)
Fragnatik, а где DRKB скачать? Дай ссылку, please...

http://drkb.ru/

Автор: JohnnY 30.8.2005, 21:41
Спасибо... Pakshin A. S.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)