[Einsteiger] Autoclick Problem

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

haftting
Posts: 4
Joined: 24 Nov 2018, 09:59

[Einsteiger] Autoclick Problem

24 Nov 2018, 10:12

Guten Tag,
ich bin seit gestern dabei, mich ein wenig mit AHK vertraut zu machen und wollte jetzt (wie auch schon 1000 mal irgendwo beschrieben) einfaches AutoClick Script schreiben, bzw. verstehen.
Ich habe jetzt folgende "Versionen" gefunden:
Bsp1:

Code: Select all

F1::Suspend
LButton::
Loop
{
SetMouseDelay 100
Click
If (GetKeyState("LButton","P")=0)
Break}
Bsp2:

Code: Select all

XButton1::
While GetKeyState("XButton1", "P")
{
        Send {Lbutton}
        Sleep 100
}
return
Das Problem bei Bsp. 1 ist, dass es wenn ich 1x die linke Maustaste drücke, danach dauerhaft geklickt wird, auch wenn ich die Taste wieder loslasse. Ich habe alternativ das hier mal probiert:

Code: Select all

F1::Suspend
F2::ExitApp
LButton::
Loop
{
Send {LButton}
SetMouseDelay 50
If (GetKeyState("LButton","P")=0)
Break
}
Das funktioniert soweit eigentlich,wenn ich allerdings die Maustaste etwas länger gedrückt halte, habe ich das gleiche Fehlerbild wie oben.


Bsp. 2 funktioniert bei mir gar nicht. Da bekomme ich schon beim Versuch es zu kompilieren, den Fehler beim "return" -> "Error: This line does not contain a recognized action.

Vlt kann mir diesbezüglich ja jemand helfen.
just me
Posts: 9458
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: [Einsteiger] Autoclick Problem

25 Nov 2018, 04:45

Moin,

das hier läuft bei mir wie erwartet:

Code: Select all

#NoEnv
F1::Suspend
LButton::
SetMouseDelay, 100
Loop
{
   Click
   If (GetKeyState("LButton", "P") = 0)
      Break
}
Return
Bei Deinem Bsp2 kann ich keinen Fehler erkennen, der das Kompilieren verhindern sollte. Entweder hat Deine AHK-Installation ein Problem oder Du hast beim Kopieren unabsichtlich unsichtbare 'böse' Zeichen in die Skripte gelegt.
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: [Einsteiger] Autoclick Problem

25 Nov 2018, 07:19

Du solltest vielleicht updaten.
Recommends AHK Studio
haftting
Posts: 4
Joined: 24 Nov 2018, 09:59

Re: [Einsteiger] Autoclick Problem

25 Nov 2018, 09:02

just me wrote:
25 Nov 2018, 04:45
Moin,

das hier läuft bei mir wie erwartet:

Code: Select all

#NoEnv
F1::Suspend
LButton::
SetMouseDelay, 100
Loop
{
   Click
   If (GetKeyState("LButton", "P") = 0)
      Break
}
Return
Bei Deinem Bsp2 kann ich keinen Fehler erkennen, der das Kompilieren verhindern sollte. Entweder hat Deine AHK-Installation ein Problem oder Du hast beim Kopieren unabsichtlich unsichtbare 'böse' Zeichen in die Skripte gelegt.
Danke erstmal fürs ausprobieren. Ich habe mittlerweile den Fehler gefunden. Zumindest habe ich mal deinen Code genommen und Schritt für Schritt auf den ursprünglichen zurückgeführt. Im Endeffekt hätte ich vielleicht mal 10 sek länger lesen sollen und den kompletten Code hier reinkopieren sollen. Habe nämlich die Standardzeilen, die beim erstellen vom neuen Script erzeugt werden nicht auskommentiert/ gelöscht. Schien da wohl an dem "SendMode Input" gelegen zu haben.

1-2 Verständnisfragen hätte ich allerdings noch:
1. Müsste es nicht eigentlich auch Auswirkungen haben, ob ich den Mousedelay innerhalb, oder außerhalb der Loop setze?

2. An sich ist mir aus anderen Sprachen ja die Bedeutung von return bekannt. Hier kann ich das aber an sich weglassen?
just me
Posts: 9458
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: [Einsteiger] Autoclick Problem

26 Nov 2018, 05:47

1. Müsste es nicht eigentlich auch Auswirkungen haben, ob ich den Mousedelay innerhalb, oder außerhalb der Loop setze?
Nein. Wenn Du den Wert von MouseDelay vor der Schleife auf 100 setzt, bleibt er während der Ausführung der gesamten Schleife und auch noch danach auf 100. Wenn Du den Wert in jedem Schleifendurchlauf setzt, ändert sich nichts. AHK muss aber bei jedem Achleifendurchlauf eine zusätzliche Anweisung ausführen.
2. An sich ist mir aus anderen Sprachen ja die Bedeutung von return bekannt. Hier kann ich das aber an sich weglassen?
Nein. An sich braucht jede Subroutine eine Return Anweisung als Abschluss. Lediglich bei einzeiligen Hotkey/Hotstring Routinen kann (muss) die Anweisung weggelassen werden. Sie wird dann von AHK intern hinzugefügt.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 43 guests