2012-02-27 206 views
0

我想将鼠标按键和鼠标按键重新映射到键盘按键,但只能在使用某个应用程序时重新映射。这是我在多大程度上得到:将鼠标事件重新映射到键盘按键

_WinWaitActivate("League of Legends (TM) Client", "") 
HotKeySet("{K}", "WinTab") 
ProcessWait("") 

Func WinTab() 
    Send("G") 
EndFunc 

#region --- Internal functions Au3Recorder Start --- 
Func _WinWaitActivate($title, $text, $timeout=0) 
    WinWait($title, $text, $timeout) 
    If Not WinActive($title, $text) Then WinActivate($title, $text) 
    WinWaitActive($title, $text, $timeout) 
EndFunc 
#endregion --- Internal functions Au3Recorder End --- 

这将重新映射ķ。也可以重新映射鼠标滚轮,但我无法找到合适的键绑定。如果按下EscAlt + 标签例如,我也想要暂停重新映射。

回答

0

用途:

While True 
    If IsPressed('21') Then 
     MouseWheel("up", 2) 
    EndIf 

    If IsPressed('22') Then 
     MouseWheel("down", 2) 
    EndIf 
    Sleep(100) 
Wend 

Exit 

Func IsPressed($hexKey) 
    Local $aR, $bO 
    $hexKey = '0x' & $hexKey 
    $aR = DllCall("user32", "int", "GetAsyncKeyState", "int", $hexKey) 
    If Not @error And BitAND($aR[0], 0x8000) = 0x8000 Then 
     $bO = 1 
    Else 
     $bO = 0 
    EndIf 
    Return $bO 
EndFunc ;==>_IsPressed 

#cs 
    01 Left mouse button 
    02 Right mouse button 
    04 Middle mouse button (three-button mouse) 
    05 Windows 2000/XP: X1 mouse button 
    06 Windows 2000/XP: X2 mouse button 
    08 BACKSPACE key 
    09 TAB key 
    0C CLEAR key 
    0D ENTER key 
    10 SHIFT key 
    11 CTRL key 
    12 ALT key 
    13 PAUSE key 
    14 CAPS LOCK key 
    1B ESC key 
    20 SPACEBAR 
    21 PAGE UP key 
    22 PAGE DOWN key 
    23 END key 
    24 HOME key 
    25 LEFT ARROW key 
    26 UP ARROW key 
    27 RIGHT ARROW key 
    28 DOWN ARROW key 
    29 SELECT key 
    2A PRINT key 
    2B EXECUTE key 
    2C PRINT SCREEN key 
    2D INS key 
    2E DEL key 
    30 0 key 
    31 1 key 
    32 2 key 
    33 3 key 
    34 4 key 
    35 5 key 
    36 6 key 
    37 7 key 
    38 8 key 
    39 9 key 
    41 A key 
    42 B key 
    43 C key 
    44 D key 
    45 E key 
    46 F key 
    47 G key 
    48 H key 
    49 I key 
    4A J key 
    4B K key 
    4C L key 
    4D M key 
    4E N key 
    4F O key 
    50 P key 
    51 Q key 
    52 R key 
    53 S key 
    54 T key 
    55 U key 
    56 V key 
    57 W key 
    58 X key 
    59 Y key 
    5A Z key 
    5B Left Windows key 
    5C Right Windows key 
    60 Numeric keypad 0 key 
    61 Numeric keypad 1 key 
    62 Numeric keypad 2 key 
    63 Numeric keypad 3 key 
    64 Numeric keypad 4 key 
    65 Numeric keypad 5 key 
    66 Numeric keypad 6 key 
    67 Numeric keypad 7 key 
    68 Numeric keypad 8 key 
    69 Numeric keypad 9 key 
    6A Multiply key 
    6B Add key 
    6C Separator key 
    6D Subtract key 
    6E Decimal key 
    6F Divide key 
    70 F1 key 
    71 F2 key 
    72 F3 key 
    73 F4 key 
    74 F5 key 
    75 F6 key 
    76 F7 key 
    77 F8 key 
    78 F9 key 
    79 F10 key 
    7A F11 key 
    7B F12 key 
    7C-7F F13 key - F16 key 
    80H-87H F17 key - F24 key 
    90 NUM LOCK key 
    91 SCROLL LOCK key 
    A0 Left SHIFT key 
    A1 Right SHIFT key 
    A2 Left CONTROL key 
    A3 Right CONTROL key 
    A4 Left MENU key 
    A5 Right MENU key 
#ce 
3

您无法使用HotKeySet绑定鼠标操作,因为这仅适用于键盘。

而是有几个选项:(使用_IsPressed

第二部分已经做了上千次...搜索吧:)

+0

是@ADIN正确的答案吗? 'Func IsPressed($ hexKey)'对他的答案有什么作用? – 5ervant 2013-11-28 09:19:53

+1

@Servant,是的,他只是使用我的第一个建议从这个答案。他还自己定义了IsPressed,而不是使用AutoIt Misc.au3标准UDF中包含的那个。 – Matt 2013-12-11 11:55:10

+0

但我想他没有禁用鼠标滚轮的原始功能。 – 5ervant 2013-12-14 05:07:15