201 (изменено: Malcev, 2017-07-05 13:32:11)

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Я так понял, что такие:
Volume Up транскодируется в сканкод 30 с 0 параметром, а 4 параметра в этой функции нету.
https://msdn.microsoft.com/ru-ru/librar … s.85).aspx
4 есть только в MapVirtualKeyEx (начиная с Vista).

msgbox % DllCall("MapVirtualKey", "uint", 0xAF, "uint", 0)

Можешь в исходниках полазить, он там даёт комментарии:
https://github.com/AutoHotkey/AutoHotke … e/hook.cpp

202

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Но информация об sc130 в MapVirtualKey есть, а в GetKeyName уже нет...

SetFormat, IntegerFast, h
msgbox % vk := DllCall("MapVirtualKey", "uint", 0xe030, "uint", 1)  
msgbox % GetKeyName("vk" vk)
msgbox % GetKeyName("sc" 130)
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

203

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Потому что VolumeUp ahk хранит в VK, как и почти все остальные клавиши.

204

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Почему sc из vk неправильный - понятно, тут уже вопрос почему GetKeyName из sc не то возвращает, если в этом случае с MapVirtualKey проблем нет.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

205

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Ну смотри, что пишет:

vk_type sc_to_vk(sc_type aSC)
{
// These are mapped manually because MapVirtualKey() doesn't support them correctly, at least
// on some -- if not all -- OSs.  The main app also relies upon the values assigned below to
// determine which keys should be handled by scan code rather than vk:

https://github.com/AutoHotkey/AutoHotke … _mouse.cpp

206

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Вообщем смысл в том что на MapVirtualKey надежды нет, поэтому сделано много исключений, а многие исключения отсутсвуют.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

207

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

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

208

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Я так понял ММ там напрочь отсутствуют.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

209

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Да, вот список:

vk_type sc_to_vk(sc_type aSC)
{
	// These are mapped manually because MapVirtualKey() doesn't support them correctly, at least
	// on some -- if not all -- OSs.  The main app also relies upon the values assigned below to
	// determine which keys should be handled by scan code rather than vk:
	switch (aSC)
	{
	// Even though neither of the SHIFT keys are extended -- and thus could be mapped with MapVirtualKey()
	// -- it seems better to define them explicitly because under Win9x (maybe just Win95).
	// I'm pretty sure MapVirtualKey() would return VK_SHIFT instead of the left/right VK.
	case SC_LSHIFT:      return VK_LSHIFT; // Modifiers are listed first for performance.
	case SC_RSHIFT:      return VK_RSHIFT;
	case SC_LCONTROL:    return VK_LCONTROL;
	case SC_RCONTROL:    return VK_RCONTROL;
	case SC_LALT:        return VK_LMENU;
	case SC_RALT:        return VK_RMENU;

	// Numpad keys require explicit mapping because MapVirtualKey() doesn't support them on all OSes.
	// See comments in vk_to_sc() for details.
	case SC_NUMLOCK:     return VK_NUMLOCK;
	case SC_NUMPADDIV:   return VK_DIVIDE;
	case SC_NUMPADMULT:  return VK_MULTIPLY;
	case SC_NUMPADSUB:   return VK_SUBTRACT;
	case SC_NUMPADADD:   return VK_ADD;
	case SC_NUMPADENTER: return VK_RETURN;

	// The following are ambiguous because each maps to more than one VK.  But be careful
	// changing the value to the other choice because some callers rely upon the values
	// assigned below to determine which keys should be handled by scan code rather than vk:
	case SC_NUMPADDEL:   return VK_DELETE;
	case SC_NUMPADCLEAR: return VK_CLEAR;
	case SC_NUMPADINS:   return VK_INSERT;
	case SC_NUMPADUP:    return VK_UP;
	case SC_NUMPADDOWN:  return VK_DOWN;
	case SC_NUMPADLEFT:  return VK_LEFT;
	case SC_NUMPADRIGHT: return VK_RIGHT;
	case SC_NUMPADHOME:  return VK_HOME;
	case SC_NUMPADEND:   return VK_END;
	case SC_NUMPADPGUP:  return VK_PRIOR;
	case SC_NUMPADPGDN:  return VK_NEXT;

	// No callers currently need the following alternate virtual key mappings.  If it is ever needed,
	// could have a new aReturnSecondary parameter that if true, causes these to be returned rather
	// than the above:
	//case SC_NUMPADDEL:   return VK_DECIMAL;
	//case SC_NUMPADCLEAR: return VK_NUMPAD5; // Same key as Numpad5 on most keyboards?
	//case SC_NUMPADINS:   return VK_NUMPAD0;
	//case SC_NUMPADUP:    return VK_NUMPAD8;
	//case SC_NUMPADDOWN:  return VK_NUMPAD2;
	//case SC_NUMPADLEFT:  return VK_NUMPAD4;
	//case SC_NUMPADRIGHT: return VK_NUMPAD6;
	//case SC_NUMPADHOME:  return VK_NUMPAD7;
	//case SC_NUMPADEND:   return VK_NUMPAD1;
	//case SC_NUMPADPGUP:  return VK_NUMPAD9;
	//case SC_NUMPADPGDN:  return VK_NUMPAD3;	

	case SC_APPSKEY:	return VK_APPS; // Added in v1.1.17.00.
	}

	// Use the OS API call to resolve any not manually set above.  This should correctly
	// resolve even elements such as SC_INSERT, which is an extended scan code, because
	// it passes in only the low-order byte which is SC_NUMPADINS.  In the case of SC_INSERT
	// and similar ones, MapVirtualKey() will return the same vk for both, which is correct.
	// Only pass the LOBYTE because I think it fails to work properly otherwise.
	// Also, DO NOT pass 3 for the 2nd param of MapVirtualKey() because apparently
	// that is not compatible with Win9x so it winds up returning zero for keys
	// such as UP, LEFT, HOME, and PGUP (maybe other sorts of keys too).  This
	// should be okay even on XP because the left/right specific keys have already
	// been resolved above so don't need to be looked up here (LWIN and RWIN
	// each have their own VK's so shouldn't be problem for the below call to resolve):
	return MapVirtualKey((BYTE)aSC, 1);
}

https://github.com/Lexikos/AutoHotkey_L … _mouse.cpp

210 (изменено: teadrinker, 2017-07-05 15:31:59)

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Malcev пишет:

Volume Up транскодируется в сканкод 30 с 0 параметром, а 4 параметра в этой функции нету.
https://msdn.microsoft.com/ru-ru/librar … s.85).aspx
4 есть только в MapVirtualKeyEx (начиная с Vista)

Есть, просто не документирован:

SetFormat, IntegerFast, H
MsgBox, % DllCall("MapVirtualKey", UInt, VK_VOLUME_UP := 0xAF, UInt, MAPVK_VK_TO_VSC_EX := 4, UInt)
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

211

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Добавил новый код для клавиатурного хука, попозже добавлю для мышиного.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

212

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Вот сейчас вроде полный фарш.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

213

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Не совсем понимаю с переводчика, для чего нужен - LLKHF_LOWER_IL_INJECTED?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

214

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Я с этой темой не очень знаком. Так понимаю, этот флаг говорит о том, что инжект был сделан процессом с более низким уровнем доверия.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

215

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Да уж, там тёмный лес.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

216 (изменено: serzh82saratov, 2017-07-31 01:39:53)

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

В последнем примере многое изменилось, по сравнению с изначальным. Пропали HeapAlloc, GetProcessHeap и HeapFree?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

217

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Да, решил упростить. По сути то же самое, только вместо непосредственного выделения памяти создаётся переменная.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

218 (изменено: serzh82saratov, 2017-12-09 13:21:30)

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Забыл обсуждали или нет, по теме физическое нажатие или эмулированное.
ММ клавиши всегда определяются как эмулированные.

	  Ext := NumGet(lp + 0, 8, "UInt")
	  NFP := (LLKHF_EXTENDED >> 4) & 1

CoordMode, ToolTip
hHookKeybd := DllCall("SetWindowsHookEx"
   , Int, WH_KEYBOARD_LL := 13
   , Ptr, RegisterCallback("LowLevelKeyboardProc", "Fast")
   , Ptr, DllCall("GetModuleHandle", UInt, 0, Ptr)
   , UInt, 0, Ptr)
OnExit( Func("Exit").Bind(hHookKeybd) )
Return




Esc::ExitApp

Exit(hHookKeybd)  {
   DllCall("UnhookWindowsHookEx", Ptr, hHookKeybd)
}

LowLevelKeyboardProc(nCode, wParam, lParam)  {
   static oMem := [], lpData, size := VarSetCapacity(lpData, 16, 0)

   DllCall("RtlMoveMemory", Ptr, &lpData, Ptr, lParam, Ptr, size)
   oMem.Push([wParam, &lpData])
   timer := Func("EventHandling").Bind(oMem)  ; во избежание фризов клавиатуры обработка событий должна
   SetTimer, % timer, -10                     ; происходить обязательно по таймеру, а не в теле этой функции
   Return DllCall("CallNextHookEx", Ptr, 0, Int, nCode, Ptr, wParam, Ptr, lParam)
}

EventHandling(oMem)  {
   static oMsg := {0x100: "WM_KEYDOWN", 0x101: "WM_KEYUP", 0x104: "WM_SYSKEYDOWN", 0x105: "WM_SYSKEYUP"}
        , oMembers := ["vk", "sc", "flags", "time"]
        , oFlagOffsets := {LLKHF_EXTENDED: 0, LLKHF_LOWER_IL_INJECTED: 1, LLKHF_INJECTED: 4, LLKHF_ALTDOWN: 5, LLKHF_UP: 7}

   while (oMem[1] != "")   {
      key := oMem.RemoveAt(1)
      wp := key[1], lp := key[2]

      msg := wp
      for k, v in oMembers
         %v% := NumGet(lp + (k - 1)*4, "UInt")
      
      for k, v in oFlagOffsets
         %k% := (flags >> v) & 1
      
      sc |= LLKHF_EXTENDED << 8
	
	  Ext := NumGet(lp + 0, 8, "UInt")
	  NFP := (LLKHF_EXTENDED >> 4) & 1
	  
; текстовые значения в oMembers и названия ключей в oFlagOffsets являются
; названиями переменных, в которых теперь находятся соответствующие значения:
      ToolTip % "Message = "   . oMsg[msg]           . "`n"
              . "vkCode = "    . Format("{:#x}", vk) . "`n"
              . "scCode = "    . Format("{:#x}", sc) . "`n"
              . "pressed = "   . !LLKHF_UP           . "`n"
              . "Time = "      . time                . "`n"
              . "Injected = "  . LLKHF_INJECTED      . "`n"
              . "Lower_IL_Injected = " . LLKHF_LOWER_IL_INJECTED
			 . "`n" (NFP ? "Не физическое нажатие" : "Физическое нажатие")
   }
}

Кстати АНК не может определить через GetKeyState что ММ зажата, хотя в хуке есть события DOWN и UP.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

219

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Тут обсуждалось:
https://autohotkey.com/board/topic/3084 … tkeystate/

220

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Это видел, только не понял к какому выводу пришли?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

221

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Проверять logical state.

222

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Это как?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

223

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Там же есть пример:

~Media_Next:: 
If GetKeyState("Media_Next") 
   MsgBox, Media_Next down 
Return

224

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

serzh82saratov пишет:

Кстати АНК не может определить через GetKeyState что ММ зажата

Это понятно, только речь про то чтобы определить что она зажата физически.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

225 (изменено: Malcev, 2017-12-09 18:39:45)

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Как я понял из беседы можно через Micha's USB HID или AHKHID.
У меня нету сейчас усб клавиатуры с медиа кнопками, чтоб проверить.

226

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Не знаю, у меня HID для ММ не показывает устройство, и определяет не все ММ.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

227

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Попробуй искать другие библиотеки.
Например через interception.
http://www.oblita.com/interception.html

228

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

teadrinker А получится добавить в коллекции для мышиного хука, также как это сделано с клавиатурным, все значения из MSLLHOOKSTRUCT?
Интересует LLMHF_INJECTED, и как определить WheelRight и WheelLeft.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

229

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Добавил.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

230

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Спасибо.
Насчёт WheelRight и WheelLeft, теперь заметил что они относятся к WM_MOUSEHWHEEL, в отличии от WM_MOUSEWHEEL у WheelUp и WheelDown.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

231

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Точно.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

232

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

А у тебя клавиатура с ММ клавишами не появилась? Хотя собственно она не требуется, вопрос в том что ММ клавиши не определяются через GetKeyState, это любой может проверить, а в хуке статус есть.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

233

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

В справке не видел про это, может в багрепорт?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

234

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

У меня появился ноутбук, там есть несколько ММ клавиш, которые, правда, доступны только через клавишу Fn. Тем не менее у них есть свой отдельный vk. У меня так определяется:

Loop  {
   ToolTip % GetKeyState("Volume_Down")
   Sleep, 300
}

И так тоже:

Loop  {
   ToolTip % GetKeyState("vkAE")  ; Volume_Down
   Sleep, 300
}

Видимо, от клавиатуры зависит.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

235

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

А у меня в GetKeyState всегда 0, хотя vk такой же. KeyWait не работает тоже.
Но хоткей на отпускание работает.

Volume_Down Up::MsgBox

Кстати уже забыл, по Fn скан код меняется? У меня sc12E.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

236

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

serzh82saratov пишет:

по Fn скан код меняется?

Да, у меня меняется: Volume_Down — sc12E, без Fn та же клавиша F2 — sc3C.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

237

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Вот и вопрос: каким образом это от клавиатуры зависит?
И ещё у тебя в хуке при нажатии LLKHF_INJECTED = 0?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

238 (изменено: teadrinker, 2018-06-14 03:07:37)

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

serzh82saratov пишет:

Вот и вопрос: каким образом это от клавиатуры зависит?

Можно просто вопрос задать в обычном топике вопросов, не в багрепорт.

serzh82saratov пишет:

у тебя в хуке при нажатии LLKHF_INJECTED = 0?

Да, у меня 0, проверил — вроде всё правильно извлекается. У тебя не 0?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

239

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Нет у меня у всех ММ = 1, также как если любую клавишу посылать через Send.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

240

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

serzh82saratov, а у тебя ноутбук или простая клавиатура с виндовским драйвером?

241

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Простая клавиатура.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

242

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

А что за модель?
PS2 или USB?

243

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

USB.
http://www.smartbuy-russia.ru/product/c … 576/17862/

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

244

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Может из-за клавиатурного драйвера такое происходит?

245 (изменено: Malcev, 2018-06-14 04:14:57)

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

И если у тебя такой код не показывает msgbox при нажатии Volume_Down

#InstallKeybdHook
Loop  {
   if getKeyState("Volume_Down")
      msgbox
}

то что тогда показывается в key history?

246

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Оказалось что мешает перманентный скрипт, при его суспенд, getKeyState начинает работать, также как и Volume_Down Up::MsgBox. Но в key history (без суспенд другого скрипта, то есть когда getKeyState  не работает) все нажатия ап даун всё равно отображаются. И как другой скрипт может перебить правило последнего хоткея.
Также не понятно, если что то с драйвером, то зачем ему может быть надо маскировать физические под эмулированные.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

247

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

serzh82saratov пишет:

Оказалось что мешает перманентный скрипт, при его суспенд, getKeyState начинает работать, также как и Volume_Down Up::MsgBox. Но в key history (без суспенд другого скрипта, то есть когда getKeyState  не работает) все нажатия ап даун всё равно отображаются. И как другой скрипт может перебить правило последнего хоткея.

Чтобы это понять надо разбираться с обоими скриптами.

serzh82saratov пишет:

Также не понятно, если что то с драйвером, то зачем ему может быть надо маскировать физические под эмулированные.

Автор Interception пишет, что сложно будет их отличить, а может даже и невозможно.
https://github.com/oblitum/Interception/issues/2
А если через RawInput отлавливать, тоже как эмулированныек показываются?
https://github.com/AHK-just-me/RawInput … er/Sources

248

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Разбиратся не знаю как, там многолетний мусор, но хука нет, собственно последний хоткей на других кнопках перебивает и хук.

Про RawInput по ссылке не понял, он показывает устройства только, вроде. Но, в этом коде HID_Register в II_DEVHANDLE = 0 по этим кнопкам.

#SingleInstance Force
#Persistent    
#NoEnv
ListLines Off  
SetBatchLines -1
 
AHKHID_UseConstants() 
AHKHID_Register(1, 6, A_ScriptHwnd, RIDEV_INPUTSINK)
 
OnMessage(0x00FF, "InputMsg")  ; WM_INPUT 
Return

InputMsg(wParam, lParam) {
    Local ProdName, DevHandle 
    Critical
    DevHandle := AHKHID_GetInputInfo(lParam, II_DEVHANDLE) 
    ProdName := AHKHID_GetDevName(DevHandle, True)    
	ToolTip % DevHandle "`n" AHKHID_GetInputInfo(lParam, II_KBD_VKEY) 
}

Esc::   
	ExitApp
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

249

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Надо нажать правой кнопкой мыши по устройству и зарегестрировать.
Я бы попробовал с такой проблемой обратиться к evilC на оффоруме.
https://autohotkey.com/boards/viewtopic.php?t=12249
У него много всяких поделок связанных с перехватом, может подскажет чего.

250

Re: AHK: Как перехватить все перемещения мыши и все нажатия клавиш?

Malcev пишет:

Надо нажать правой кнопкой мыши по устройству и зарегестрировать.

Да, вроде разобрался, ничего не пишет по ММ.

Malcev пишет:

Я бы попробовал с такой проблемой обратиться к evilC на оффоруме.

Я бы тоже, но с гугл переводчиком, буду молча послан после 2 поста.
Но всё равно спасибо.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui