Maus script gesucht!

  • Guten Abend!

    ich bräuchte ein kleines Mausscript . Das Script muss Folgendes bewirken: beim Drücken der linken Maustaste soll der erste Mausklick, beim Loslassen der zweite Mausklick erfolgen. Es ist kein richteg Doppelklick in dem Sinne, sondern ich möchte den zwei Ereignissen (Drücken/Loslassen) einfach die gleiche Funktion zuweisen. Ich hoffe, ich habe mich verständlich ausgedrückt :rolleyes: . Das Ganze möchte ich per Hotkey aktivieren und deaktivieren können.

    Hier schematische Aufbau der Funktion, wie ich mir das vorstelle (bin Neuling):


    Code
    Funktion Anfang
    Drücken der LM ("Klick LM")
    Loslassen der LM ("Klick LM")


    Ich hoffe, das ist keine schwere Aufgabe für EUCH Profis :)

    Viele Dank!

  • Spoiler anzeigen
    [autoit]


    #include <Misc.au3>
    HotKeySet("^t", "aufpassen")
    HotKeySet("^e", "ende")
    Func aufpassen()
    HotKeySet("^t", "pause")
    While 1
    If _IsPressed(01) Then
    MouseClick("left")
    While _IsPressed(01)
    WEnd
    MouseClick("left")
    EndIf
    Sleep(10)
    WEnd
    EndFunc ;==>aufpassen
    Func pause()
    HotKeySet("^t", "aufpassen")
    Do
    Sleep(10)
    Until ""
    EndFunc ;==>pause
    Func ende()
    Exit
    EndFunc ;==>ende
    While 1
    Sleep(10)
    WEnd

    [/autoit]


    Padmak

  • Kleine Verbesseung, Padmak, sonst führt er die Func _pause ewig aus, wenn einmal gestartet...

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>
    HotKeySet("^t", "aufpassen")
    HotKeySet("^e", "ende")
    Func aufpassen()
    HotKeySet("^t", "pause")
    While 1
    If _IsPressed(01) Then
    MouseClick("left")
    While _IsPressed(01)
    WEnd
    MouseClick("left")
    EndIf
    Sleep(10)
    WEnd
    EndFunc ;==>aufpassen
    Func pause()
    Do
    Sleep(10)
    Until _isPressed("11") And _isPressed("54")
    EndFunc ;==>pause
    Func ende()
    Exit
    EndFunc ;==>ende
    While 1
    Sleep(10)
    WEnd

    [/autoit]

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Danke dir Padman, das scheint aber wohl nicht zu funktionieren.

    Ich habe das folgendermaßen überprüft: ich klicke eine Desktopverknüpfung schnell an (ein Klick), dabei soll diese Aktion quasi einen Doppelklick bewirken. Wenn ich aber die Verknüpfung anklicke und länger (die Zeit ist immer variabel) die LM gedrückt halte und dann loslasse, müsste ich die Möglichkeit haben, die Verknüpfung zu umbenennen. Das ist mit der Verknüpfung nur ein Beispiel, wie ich das am einfachsten überprüfen kann ob das Script funktioniert.
    Wichtig ist, dass durch das Loslassen der linken Maustaste der zweite Klick ausgelöst wird. Der richtige Doppelklick (zwei schnell aufeinander folgende Klicks) ist hier nicht gewollt.
    Kann man das mit dem Autoit überhaupt realisieren? Oder will einfach zu viel, dann würde ich aufgeben und euch nicht mit meinem Problem belasten :)

    EDIT: habe deinen zweiten Post nicht gelesen, war am Tippen, jetzt schnell testen...

  • Nee, der war nur ne Geschwindigkeitsverbesserung...
    Versuch doch mal die Windows-Option "Klicken für Start" zu aktivieren:
    Ordneroptionen--> Allgemein--> "Öffnen durch einfachen Klick..."

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

  • Nee, der war nur ne Geschwindigkeitsverbesserung...
    Versuch doch mal die Windows-Option "Klicken für Start" zu aktivieren:
    Ordneroptionen--> Allgemein--> "Öffnen durch einfachen Klick..."

    Klar ist mir diese Funktion bekannt :)

    Das war nur ein Beispiel mit der Verknüpfung wie ich das schnell testen kann. Ich brächte aber das Script für eine Anwendung.
    Ist das überhaupt verständlich wie ich das beschrieben habe, was ich möchte? Ich stöße an meine didaktischen Grenzen um das noch besser erklären zu können :D

  • Na dann vlt. so:

    [autoit]


    #include <Misc.au3>
    While True
    Sleep(1)
    If _isPressed("01") Then
    While _isPressed("01")
    Sleep(1)
    Wend
    MouseClick("left")
    EndIf
    WEnd

    [/autoit]


    /edit: @Padmak: Es gibt einen Unterschied: Er klickt nur einmal. Schaus dir nochmal an. Ich habs schon probiert: Es funktioniert!!!

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

    4 Mal editiert, zuletzt von L3viathan2142 (27. Februar 2009 um 17:27)

  • Ähm was war denn bitte bei mir ganz oben:

    Spoiler anzeigen
    [autoit]


    While 1
    If _IsPressed(01) Then
    MouseClick("left")
    While _IsPressed(01)
    WEnd
    MouseClick("left")
    EndIf
    Sleep(10)
    WEnd

    [/autoit]


    also ICH sehe da eigentlich keinen unterschied...
    Ich muss wohl blind sein *brille putz*

    Padmak

  • Danke dir L3viathan2142 vielmals, funktioniert genau so, wie ich mir das vorgestellt habe! Ich bedanke mich auch bei allen anderen für Ihre Anteilnahme.

    Ich hätte noch eine Bitte, bräuchte noch ein Script, welches mir beim Drücken der rechten Maustaste die linke Schift-Taste automatisch betätigt. Sie sollten quasi gleichzeitig gedrückt werden. Dies sollte auch nach Möglichkeit per Hotkey aktiviert/deaktiviert werden. Ist sowas machbar?

    Viele Grüße

  • Ja, klar.:

    [autoit]


    #include <Misc.au3>
    HotkeySet("^t","_toggle")
    $toggle=false
    $pressed=False
    While True
    Sleep(1)
    Wend
    Func _toggle()
    If $toggle Then AdlibDisable()
    If not $toggle Then AdLibEnable("_maybe",100)
    $toggle = not $toggle
    EndFunc
    Func _maybe()
    If $pressed Then
    If not _isPressed("02") Then
    $pressed = False
    Send("{SHIFT UP}")
    EndIf
    Else
    If _isPressed("02") Then
    $pressed = True
    Send("{SHIFT DOWN}")
    EndIf
    EndIf
    EndFunc

    [/autoit]


    Sag mal, obs geht...

    Twitter: @L3viathan2142
    Benutze AutoIt persönlich nicht mehr, da ich keinen Windows-Rechner mehr besitze.

    Einmal editiert, zuletzt von L3viathan2142 (5. März 2009 um 18:29)

  • Guten Abend!
    funktioniert leider nicht ;(

    P.S: habe ich das richtig verstanden, ich aktiviere/deaktiviere das Script mit der t-Taste?

  • alles klar!

    Ich bekomme aber jetzt eine Fehlermeldung:

    Code
    If _isPressed("02") Then
    If ^ERROR
    
    
    Error: Unknown function name

    P.S: Kann man so programmieren, dass das Script ohne CTRL, nur durch das Drücken der T-Taste ausgeführt wird ?

  • Probier doch ein bisschen aus, musst ja nur den Wert ersetzen. In der Hilfe stehen ziemlich viele Tasten die du verwenden kannst :)

  • Hallo leviathan,

    das Script funktioniert wunderbar für den Zweck wie ich oben beschrieben habe, ich habe mich aber in meinem Post nicht ganau ausgedrückt ;) Die Schift-Taste muss nach dem ersten Klick RM gehalten werden bis ein weiter Klick der rechten Maustaste kommt:

    1. Klick RM ----> Schift-Taste gedrückt halten
    2. Klick RM ----> Schift-Taste loslassen

    und so weiter...

    Wie viel Afwand wäre das, bistimmt nur ein paar Zeilen ändern oder !?
    P.S: ist nicht dringend, bin ein geduldiger Mensch^^

    Danke im Voraus!