wie ist die taste - MAUSrad nach vorne/hoch ?

  • hallo vielleicht blöd formuliert aber ich suche die bezeichnung für die taste - also wenn man das mausrad nach vorne macht, ein tick


    soll so sein ich mach das mausrad nach vorne und es startet eine funtkion

    HotKeySet ("MAUSRADHOCH","meine_funktion1" )

    ? hoffe jemand versteht mein durcheinander, danke

    ps.: in der hilfe find ich nichts richtiges dazu

    danke

  • also ich habe ein ein exe script da dort geht das, irgendeine bezeichnung muss es dafür geben, dort kann man einstellen maus up oder down und dann wird bei betätigen des rads, die funktion ausgeführt drücke STAG+H , hab leider noch nichts gefunden, weiß das einer

  • Da es nicht in den HotkeySet integriert ist, muss man es selber machen:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $struct = "DWORD vkCode;" _
    &"DWORD scanCode;" _
    &"long flags;" _
    &"ULONG_PTR dwExtraInfo"
    HotKeySet("{F2}","Guid")
    Global $hMouseHook, $WheelMoving

    [/autoit] [autoit][/autoit] [autoit]

    $CallbackMouseProc = TogglePlugMouse()

    [/autoit] [autoit][/autoit] [autoit]

    ToolTip("Wheel captured",2,2,"Capture Mose")
    While 1
    Sleep(100)
    $WheelMsg = _GetWheelMove()
    Select
    Case $WheelMsg = "U" ;UP
    ToolTip("UP")
    Case $WheelMsg = "D" ;DOWN
    ToolTip("Down")
    Case Else
    ToolTip("Nix")
    EndSelect
    WEnd
    ;BlockInput(0)
    Func GUID()
    TogglePlugMouse($CallbackMouseProc)
    ToolTip("")
    MsgBox(4096, "", "KeyBoard is enabled!")
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Func _GetWheelMove()
    Local $x = StringLeft($WheelMoving,1)
    $WheelMoving = StringTrimLeft($WheelMoving,1)
    Return $x
    EndFunc
    Func TogglePlugMouse($hCallProc=0)
    If IsArray($hMouseHook) Then
    DllCall("user32.dll", "int", "UnhookWindowsHookEx", "hwnd", $hMouseHook[0])
    DllCallbackFree($hCallProc)
    Return 0
    EndIf

    Local Const $WH_MOUSE_LL = 14
    ;~ Local Const $WH_MOUSE = 7
    Local $hMouseProc = DllCallbackRegister("_MouseProc", "int", "int;ptr;ptr")
    Local $hMod = DllCall("kernel32.dll", "hwnd", "GetModuleHandle", "ptr", 0)
    $hMouseHook = DllCall("user32.dll", "hwnd", "SetWindowsHookEx", _
    "int", $WH_MOUSE_LL, _
    "ptr", DllCallbackGetPtr($hMouseProc), _
    "hwnd", $hMod[0], _
    "dword", 0)
    Return $hMouseProc
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _MouseProc($nCode, $wParam, $lParam)
    If $nCode < 0 Then
    Local $iRet = DllCall("user32.dll", "long", "CallNextHookEx", "hwnd", $hWinHook[0], _
    "int", $nCode, _
    "ptr", $wParam, _
    "ptr", $lParam)
    Return $iRet[0]
    EndIf
    $dllstruct = DllStructCreate($struct,$lParam)
    ;~ If DllStructGetData($dllstruct,1) = 0x1B And _IsPressed("11") Then $CTRL_ESC_Pressed = True
    If $wParam = 0x20A Then
    If DllStructGetData($dllstruct,3) > 0 Then
    ConsoleWrite("Up" & @CRLF)
    $WheelMoving &= "U"
    ElseIf DllStructGetData($dllstruct,3) < 0 Then
    ConsoleWrite("Down" & @CRLF)
    $WheelMoving &= "D"
    EndIf
    EndIf
    ;~ ConsoleWrite($wParam & " - " & DllStructGetData($dllstruct,1) & " - " & DllStructGetData($dllstruct,2)& " - " & DllStructGetData($dllstruct,3)& " - " & DllStructGetData($dllstruct,4) & @LF)
    Return 0
    EndFunc

    [/autoit]
  • ohhe je, und wie würde das bei dem Script aussehen wenn man statt des X-Taste es einfügen sollte?


    Opt("GUIOnEventMode", 1) ; mit dieser Option kannst Du Funktionen aufrufen
    OPt("SendKeyDelay",100) ; geschwindigkeit
    OPt("SendKeyDownDelay",70) ; geschwindigkeit
    HotKeySet ("x","meine_funktion1" )


    While 1 ; Schleife die wartet, damit Programm nicht beendet wird
    Sleep(1)
    WEnd
    Func meine_funktion1()
    send ("^h+{F2}+^h") ; text bzw zahlen die geschreiben werden sollen1
    EndFunc


    das script geht soweit, müsste bloss statt des x das mauswhell nach oben taste sein""

    thx

  • vielleicht das hier?

    sry... das simuliert nur dass das rad gedreht wird... *sry* :D
    Aber vielleicht können die Cracks Xeno, oder pee oder GTA oder was weiss ich vllt damit was anfangen :)

    Spoiler anzeigen
    [autoit]

    Func _WinAPI_Mouse_Event($iFlags, $iX = 0, $iY = 0, $iData = 0, $iExtraInfo = 0)
    DllCall("User32.dll", "none", "mouse_event", "int", $iFlags, "int", $iX, "int", $iY, "int", $iData, "int", $iExtraInfo)
    EndFunc ;==>_WinAPI_Mouse_Event

    [/autoit]


    So funzt die _WinAPI_Mouse_Event funktione vllt kann man das ja auch umkehren... keine ahnung kenn mich zu wenig mit DLLs aus

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

    Einmal editiert, zuletzt von FireFlyer (2. Juni 2008 um 19:19)

  • $MOUSEEVENTF_WHEEL ? ähh ja eng is nich so extrem fit also das fachliche

    also anstatt X


    $MOUSEEVENTF_WHEEL ? und was dazu was mit achse, soll ja nur ein tick nach open als UP ?!

  • hab doch noch was gefunden!!!!!

    damn, aber auch das entscheidet nicht zwischen up und down :(

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

    Einmal editiert, zuletzt von FireFlyer (2. Juni 2008 um 19:50)

  • wie bekomme ich das da rein anstatt des X'es


    Opt("GUIOnEventMode", 1) ; mit dieser Option kannst Du Funktionen aufrufen

    OPt("SendKeyDelay",100) ; geschwindigkeit

    OPt("SendKeyDownDelay",70) ; geschwindigkeit

    HotKeySet ("x","meine_funktion1" )


    While 1 ; Schleife die wartet, damit Programm nicht beendet wird

    Sleep(1)

    WEnd

    Func meine_funktion1()

    send ("^h+{F2}+^h") ; text bzw zahlen die geschreiben werden sollen1

    EndFunc


    ohhe jeeee mit maus is ja komplieziert

  • öhhm sachma... wiso nehmen wir net das script von progandy? :D funzt doch super :D... hab nurnoch hwinhook unter global gesetzt damit der fehler net kommt ;)

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $struct = "DWORD vkCode;" _
    &"DWORD scanCode;" _
    &"long flags;" _
    &"ULONG_PTR dwExtraInfo"
    HotKeySet("{F2}","Guid")
    Global $hMouseHook, $WheelMoving, $hWinHook[1]

    [/autoit] [autoit][/autoit] [autoit]

    $CallbackMouseProc = TogglePlugMouse()

    [/autoit] [autoit][/autoit] [autoit]

    #cs
    ToolTip("Wheel captured",2,2,"Capture Mose")
    While 1
    Sleep(100)
    $WheelMsg = _GetWheelMove()
    Select
    Case $WheelMsg = "U" ;UP
    ToolTip("UP")
    Case $WheelMsg = "D" ;DOWN
    ToolTip("Down")
    Case Else
    ToolTip("Nix")
    EndSelect
    WEnd
    #ce ;Progandys beispiel :)

    [/autoit] [autoit][/autoit] [autoit]

    ;code von td1000
    Opt("GUIOnEventMode", 1) ; mit dieser Option kannst Du Funktionen aufrufen

    [/autoit] [autoit][/autoit] [autoit]

    OPt("SendKeyDelay",100) ; geschwindigkeit

    [/autoit] [autoit][/autoit] [autoit]

    OPt("SendKeyDownDelay",70) ; geschwindigkeit

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    $WheelMsg = _GetWheelMove()
    Select
    Case $WheelMsg = "U" ;UP
    meine_funktion1()
    EndSelect
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func meine_funktion1()

    [/autoit] [autoit][/autoit] [autoit]

    send ("^h+{F2}+^h") ; text bzw zahlen die geschreiben werden sollen1

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc
    ;end code td100ß
    ;BlockInput(0)
    Func GUID()
    TogglePlugMouse($CallbackMouseProc)
    ToolTip("")
    MsgBox(4096, "", "KeyBoard is enabled!")
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Func _GetWheelMove()
    Local $x = StringLeft($WheelMoving,1)
    $WheelMoving = StringTrimLeft($WheelMoving,1)
    Return $x
    EndFunc
    Func TogglePlugMouse($hCallProc=0)
    If IsArray($hMouseHook) Then
    DllCall("user32.dll", "int", "UnhookWindowsHookEx", "hwnd", $hMouseHook[0])
    DllCallbackFree($hCallProc)
    Return 0
    EndIf

    Local Const $WH_MOUSE_LL = 14
    ;~ Local Const $WH_MOUSE = 7
    Local $hMouseProc = DllCallbackRegister("_MouseProc", "int", "int;ptr;ptr")
    Local $hMod = DllCall("kernel32.dll", "hwnd", "GetModuleHandle", "ptr", 0)
    $hMouseHook = DllCall("user32.dll", "hwnd", "SetWindowsHookEx", _
    "int", $WH_MOUSE_LL, _
    "ptr", DllCallbackGetPtr($hMouseProc), _
    "hwnd", $hMod[0], _
    "dword", 0)
    Return $hMouseProc
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _MouseProc($nCode, $wParam, $lParam)
    If $nCode < 0 Then
    Local $iRet = DllCall("user32.dll", "long", "CallNextHookEx", "hwnd", $hWinHook[0], _
    "int", $nCode, _
    "ptr", $wParam, _
    "ptr", $lParam)
    Return $iRet[0]
    EndIf
    $dllstruct = DllStructCreate($struct,$lParam)
    ;~ If DllStructGetData($dllstruct,1) = 0x1B And _IsPressed("11") Then $CTRL_ESC_Pressed = True
    If $wParam = 0x20A Then
    If DllStructGetData($dllstruct,3) > 0 Then
    ConsoleWrite("Up" & @CRLF)
    $WheelMoving &= "U"
    ElseIf DllStructGetData($dllstruct,3) < 0 Then
    ConsoleWrite("Down" & @CRLF)
    $WheelMoving &= "D"
    EndIf
    EndIf
    ;~ ConsoleWrite($wParam & " - " & DllStructGetData($dllstruct,1) & " - " & DllStructGetData($dllstruct,2)& " - " & DllStructGetData($dllstruct,3)& " - " & DllStructGetData($dllstruct,4) & @LF)
    Return 0
    EndFunc

    [/autoit]

    So nun sagen wir noch artig Danke an progandy ;)

    So sollte dein script nun funktionieren...
    @progandy... woher weisst du das immer mit den DLLs? ... ich hab davon kein plan :(

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • Das war der Keyboardhook von http://www.autoitscript.com/forum/index.php?s=&showtopic=40690&view=findpost&p=439185
    Und dann MSDN dazu gelesen, dann kam ich auf die Maus :)
    //Edit: Ahhm, muss sagen, da war was falsch. das hWinHook muss ganz raus :( Das muss hMouseHook sein.

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $struct = "DWORD vkCode;" _
    &"DWORD scanCode;" _
    &"long flags;" _
    &"ULONG_PTR dwExtraInfo"
    HotKeySet("{F2}","Guid")
    Global $hMouseHook, $WheelMoving,

    [/autoit] [autoit][/autoit] [autoit]

    $CallbackMouseProc = TogglePlugMouse()

    [/autoit] [autoit][/autoit] [autoit]

    #cs
    ToolTip("Wheel captured",2,2,"Capture Mose")
    While 1
    Sleep(100)
    $WheelMsg = _GetWheelMove()
    Select
    Case $WheelMsg = "U" ;UP
    ToolTip("UP")
    Case $WheelMsg = "D" ;DOWN
    ToolTip("Down")
    Case Else
    ToolTip("Nix")
    EndSelect
    WEnd
    #ce ;Progandys beispiel :)

    [/autoit] [autoit][/autoit] [autoit]

    ;code von td1000
    Opt("GUIOnEventMode", 1) ; mit dieser Option kannst Du Funktionen aufrufen

    [/autoit] [autoit][/autoit] [autoit]

    OPt("SendKeyDelay",100) ; geschwindigkeit

    [/autoit] [autoit][/autoit] [autoit]

    OPt("SendKeyDownDelay",70) ; geschwindigkeit

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(100)
    $WheelMsg = _GetWheelMove()
    Select
    Case $WheelMsg = "U" ;UP
    meine_funktion1()
    EndSelect
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func meine_funktion1()

    [/autoit] [autoit][/autoit] [autoit]

    send ("^h+{F2}+^h") ; text bzw zahlen die geschreiben werden sollen1

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc
    ;end code td100ß
    ;BlockInput(0)
    Func OnAutoItExit()
    TogglePlugMouse($CallbackMouseProc)
    ToolTip("")
    MsgBox(4096, "", "KeyBoard is enabled!")
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Func _GetWheelMove()
    Local $x = StringLeft($WheelMoving,1)
    $WheelMoving = StringTrimLeft($WheelMoving,1)
    Return $x
    EndFunc
    Func TogglePlugMouse($hCallProc=0)
    If IsArray($hMouseHook) Then
    DllCall("user32.dll", "int", "UnhookWindowsHookEx", "hwnd", $hMouseHook[0])
    DllCallbackFree($hCallProc)
    Return 0
    EndIf

    Local Const $WH_MOUSE_LL = 14
    ;~ Local Const $WH_MOUSE = 7
    Local $hMouseProc = DllCallbackRegister("_MouseProc", "int", "int;ptr;ptr")
    Local $hMod = DllCall("kernel32.dll", "hwnd", "GetModuleHandle", "ptr", 0)
    $hMouseHook = DllCall("user32.dll", "hwnd", "SetWindowsHookEx", _
    "int", $WH_MOUSE_LL, _
    "ptr", DllCallbackGetPtr($hMouseProc), _
    "hwnd", $hMod[0], _
    "dword", 0)
    Return $hMouseProc
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _MouseProc($nCode, $wParam, $lParam)
    If $nCode < 0 Then
    Local $iRet = DllCall("user32.dll", "long", "CallNextHookEx", "hwnd", $hMouseHook[0], _
    "int", $nCode, _
    "ptr", $wParam, _
    "ptr", $lParam)
    Return $iRet[0]
    EndIf
    $dllstruct = DllStructCreate($struct,$lParam)
    ;~ If DllStructGetData($dllstruct,1) = 0x1B And _IsPressed("11") Then $CTRL_ESC_Pressed = True
    If $wParam = 0x20A Then
    If DllStructGetData($dllstruct,3) > 0 Then
    ConsoleWrite("Up" & @CRLF)
    $WheelMoving &= "U"
    ElseIf DllStructGetData($dllstruct,3) < 0 Then
    ConsoleWrite("Down" & @CRLF)
    $WheelMoving &= "D"
    EndIf
    EndIf
    ;~ ConsoleWrite($wParam & " - " & DllStructGetData($dllstruct,1) & " - " & DllStructGetData($dllstruct,2)& " - " & DllStructGetData($dllstruct,3)& " - " & DllStructGetData($dllstruct,4) & @LF)
    Return 0
    EndFunc

    [/autoit]