Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Эмуляция третей кнопки мышки. [D6, WinME]


Roman_ ©   (2002-03-21 16:22:00) 

Кто-нибудь где-то видел сабж?
И у меня не было трех-кнопочной мыши, что делает обычно middle button?


Song   (2002-03-22 11:26:00) [1]

Нет, всё гораздо проще: :)

WinExec(PChar("rundll32.exe user,swapmousebutton"),SW_HIDE);


Roman_   (2002-03-22 00:56:00) [2]

Это конечно весело... Но я не об то спрашиваю. Смотри
(код ловушки), по нажатию ScrollLock меняю правую кнопку на среднюю. Правильно ли?

function HookProc(nCode: Integer; wp: WPARAM; lp: LPARAM): LongInt; stdcall;
var
mhs: PMSG;
keyState: TKeyboardState;
begin
if nCode < 0 then
begin
Result:= CallNextHookEx(HookHandle, nCode, wp, lp);
Exit;
end;
mhs:= Pointer(lp);
case mhs^.message of
WM_RBUTTONDOWN: begin
GetKeyboardState(keyState);
if Boolean(keyState[VK_SCROLL]) then begin
ReleaseCapture();
SendMessage(mhs^.hwnd, WM_MBUTTONDOWN, 0, mhs^.lParam);
SendMessage(mhs^.hwnd, WM_MBUTTONUP, 0, mhs^.lParam);
Result:= 1;
Exit;
end;
end;
WM_RBUTTONUP: begin
GetKeyboardState(keyState);
if Boolean(keyState[VK_SCROLL]) then begin
ReleaseCapture();
SendMessage(mhs^.hwnd, WM_MBUTTONUP, 0, mhs^.lParam);
Result:= 1;
Exit;
end;
end;
end;
Result:= CallNextHookEx(HookHandle, nCode, wp, lp);
end;


Song   (2002-03-21 16:38:00) [3]

Например простым добавлением ключика в реестре можно в виндах сделать эмуляцию двойного клика на третью кнопку.


Наверх

Титульная страница Поиск, карта сайта Написать письмо