![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Эмуляция третей кнопки мышки. [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]Например простым добавлением ключика в реестре можно в виндах сделать эмуляцию двойного клика на третью кнопку.