Autohotkey Tutorial!

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Autohotkey Tutorial!

      Guten Tag, da ich schon seid Jahren mit AutoHotkey Arbeite erstelle ich hier mal ein Tutorial damit jeder was davon hat und weiß wie man einen z.B GTA Keybinder macht. Ein Keybinder ist ein Programm das du mit Autohotkey (AHK) selbst erstellen kannst das bewirkt wenn du Ingame die Taste z.B 1 drückst der Satz "Stop Polizei stehen bleiben" kommt und soetwas. Wenn ihr dieses Tutorial richtig liest würdet ihr alle Fehler vermeiden und keine Fragen stellen hierzu mehr.
      Inhalt:
      1. Vorbereitung
      2. Neues Dokument
      3. Dokument Editieren
      4. Erste Funktion
      5. Send und SendInput
      6. Keybind Text/Befehl
      7. Countdown mit Sonderzeichen
      8. Keybinder nur in GTA Funktionabel
      9. Doppelbind und Doppelsatz
      10. Notizen im Script
      11. Fehlerfunktion vermeiden
      12. String im Text
      13. Tasten sperren
      14. Zufallsprinzip
      15. Kurzbind
      16. Zur AHK Compilen
      17. Zur Exe Converten
      18. Gui Fenster
      19. Koordinaten
      20. Exit Window
      21. Bilder/Text
      22. Textbox Arten
      23. Font/Farbe ändern
      24. Button erstellung
      25. Buttonfunktionen
      26. Nachrichten Boxen
      27. Nachrichtenboxfunktion
      28. Gui Creator
      29. Klickfunktion
      30. IniRead und Save
      31. Stoppuhr erstellen (Ingame/Desktop) *new*
      1. Vorbereitung
      Du lädst dir AutoHotkey runter (Klick mich)
      Du Installierst Autohotkey

      2. Neues Dokument
      Du kannst nach dem Installieren auf dem Desktop mit "Rechtsklick > Neu > Neu AutoHotkey Script" ein neues AutoHotkey

      3. Dokument Editieren
      Dokument Öffnen. Dies öffnet sich eigentlich durch Rechtsklick "Edit Script" mit einem Normalen Texteditor wie Editor oder Wordpad ich empfehle Editor.

      4. Erste Funktion
      Nun hast du etwas an Text im Editor das löscht du einfach raus da man es nicht braucht.
      Um einen Keybind zu erstellen gilt folgendes Kürzel Schema: "1::" nur halt ohne die " und "
      Diese Funktion bewirkt : Wenn Taste 1 gedrückt wird erhält man folgende aktion:
      Unter der Taste 1 kommt die Funktion wie "Send Guten Tag" (überall ohne die " und "!!!)
      Da diese Funktion auch aufhören soll schreibst du "return" darunter somit ist die erste
      Funktion erfolgreich eingefügt. Nun kannst du das Textdokument speichern, dann das
      Script auf dem Desktop durch Doppelklick oder Rechtsklick "Run Script" laufen lassen.
      Dann gehst du in ein Textdokument egal wo und drückst einmal die Taste 1 und schon
      wird automatisch der Text "Guten Tag" geschrieben.

      5. Send und SendInput
      Der Unterschied zwischen "Send Guten Tag" und "SendInput Guten Tag" ist sehr leicht
      zu verstehen, man kann Send als selbstgeschriebenen Text sehen wenn man die Taste
      drückt und SendInput ist dazu da das man den ganzen Text dort stehen hat aufeinmal.

      6. Keybind Text/Befehl
      So nun Editieren wir erneut das Script und löschen nochmal alles dadrine damit wir neu
      anfangen können. Zunächst erstellen wir einen Befehl für Ingame (GTA) wie /enter der
      fast auf jedem Server nützlich ist. Dies belegen wir auf Taste 2 des NumPads. Und ein
      Text auf Taste U:
      NumPad2::
      SendInput t/enter{enter}
      return

      U::
      SendInput t/Guten Tag, mein name ist MWP.{enter}
      return
      Das {enter} bedeutet das Automatisch Enter gedrückt wird das heißt ohne {enter} steht
      ingame immernoch im Eingabefeld "/enter" und du musst selbst Enter drücken deswegen
      Empfehle ich immer {enter} dahinter zu haben. Nun startet ihr wieder das Script nach
      dem Speichern und geht Ingame oder in ein Textdokument und drückt die Tasten U und
      NumPad zwei einmal oder öfter. Das t nach SendInput bedeutet das er t drückt damit das
      Eingabefeld in GTA startet zum Schreiben ist halt genau so wie ihr es schreibt.

      7. Countdown mit Sonderzeichen
      Es gibt hier auch Timer genau wie im Pawno scripting nur viel leichter gestaltet. Man
      kann durch Sleep "Value" einen Timer starten sprich: "Sleep 1000" bedeutet das ein
      Timer von 1Sekunde gestartet wird dannach folgt unterliegende Aktion. Hier ist ein
      Beispiel ein Countdown auf Taste F6:
      F6::
      SendInput t 3{enter}
      sleep 1000
      SendInput t 2{enter}
      sleep 1000
      SendInput t 1{enter}
      sleep 1000
      SendInput tDer Countdown ist zuende{!}{enter}
      return
      Nun fragt ihr euch sicher warum anstatt nur eines Ausrufezeichens "!" es mit Klammern
      umsetzt wurde "{!}" dies kommt da mit einem bloßen ausrufezeichen würde eine andere
      Funktion abgespielt werden die wir nicht wollen. Die beiden Klammen werden Ingame
      nicht angezeigt aber es ist notwenig sie zu haben sonst geht das Script in Arsch und die
      Keybinds funktionieren nicht.

      8. Keybinder nur in GTA Funktionabel

      Da hier alle die einen Keybinder für GTA Erstellen nicht wollen das er auf dem Desktop
      weiterläuft und nur wenn GTA gestartet ist (Nicht im ESC Menü) müsst ihr oben ins
      Script folgendes eintragen:
      #IfWinActive, GTA:SA:MP
      Dies einfach nach ganz oben ins Script über alles andere.

      9. Doppelbind mit Doppelsatz
      So nun zur Funktion das der Bind (Die Funktion) nur kommt wenn man zwei Tasten
      drückt wie Alt und 1 oder STRG und NumPad2 würde !1:: oder ^NumPad2:: sein. Das ! vor
      der 1 bedeutet das erst Alt UND 1 gedrückt werden muss und das ^ vor NumPad2 das STRG
      und die NumPad Taste 2 gedrückt werden müssen. Die beiden Punkte wieder das die nach-
      -folgende Aktion startet. Nun zwei Sätze wie diese:
      ^NumPad5::
      SendInput t/enter{enter}
      SendInput t/me betritt das Gebäude{enter}
      return
      Das sind zwei Sätze die beide sofort nacheinander abgespielt werden und bringen halt das
      man in ein Gebäude geht und gleichzeitig der Aktions (/me) text das man ein Gebäude betritt
      kommt. Dies könnt ihr sicher beliebig verändern und auch mehr hinzufügen man kann unendlich
      machen einfach untereinander.

      10. Notizen im Script
      In Autohotkey kann man auch Notizen zur Übersicht erstellen wie in Pawno beim Scripten mit //TEXT oder /*TEXT*/ nur halt mit ;Text. Ein Beispiel wäre:
      NumPad2::
      SendInput t/enter{enter} ;Zum reingehen ins Gebäude...
      return
      11. Fehlfunktionen vermeiden
      Damit ihr fehlfunktionen vermeiden könnt müsst ihr oben in das Script folgendes eintragen
      #UseHook

      t::
      Suspend On
      SendInput t
      Hotkey, Enter, On
      Hotkey, Escape, On
      Hotkey, t, Off
      return

      NumpadEnter::
      Enter::
      Suspend Permit
      Suspend Off
      SendInput {Enter}
      Hotkey, t, On
      Hotkey, Enter, Off
      Hotkey, Escape, Off
      return

      Escape::
      Suspend Permit
      Suspend Off
      SendInput {Escape}
      Hotkey, t, On
      Hotkey, Enter, Off
      Hotkey, Escape, Off
      return
      Dies bewirkt folgendes:
      Wenn du t drückst werden alle andere Tasten Funktionen ausgeschaltet sprich wenn du z.B einmal auf Taste 1 den Text Hallo hast und auf Taste 2 den Text tschüß hast und Ingame gerade chattest und z.B /call 112 machst geht dies nichtmehr denn dann kommt aufeinmal /call hallohallotschüß da die Binds aktiviert sind. Dies vermeidest du mit dem ersten Absatz. Dies schaltet sich wieder ein sobald du das zweite drückst. Der Escape:: absatz bringt das wenn du im Menü keine Tasten nutzen kannst damit du wenn du z.B ausversehen 1 drückst nicht Enter gedrückt wird.
      Why do programmers always mix up Halloween and Christmas?
      Oct 31 == Dec 25

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von TPO ()

    • 12. String im Text
      Du kannst nun auch einen Wert in deinen Text setzen wie die Uhrzeit dafür musst du erstmal das Format der Uhrzeit festlegen indem du: "FormatTime,Uhrzeit, HH:mm:ss" nach deinem Kürzel wie "NumPad1::" schreibst. Dannach der Satz indem die Uhrzeit/Datum wiedergespiegelt werden: SendInput t/me guckt auf sein Handy (%Uhrzeit%){Enter} und schon kommt Ingame durch drücken der Taste NumPad1 der Text (/me Text) Name guckt auf sein Handy (Datum - Uhrzeit) wie z.B (01.02.1993 - 15:04) so was das Ungefähr. Hier das Beispiel:
      U::
      FormatTime,Uhrzeit, HH:mm:ss
      SendInput t/me schaut auf die Uhrzeit. (%Uhrzeit%) {Enter}
      return

      13. Tasten sperren (Keybinder aus/einschalten)
      Da man nicht immer zum Aus/Einschalten seines Keybinders das Game minimieren will und beenden kann man dies auch Ingame per Tastendruck erledigen ich setze einfach einen Suspend das bedeutet deaktivierung aller Tasten auf Taste F12 und mache einen /me (Aktions) text dazu damit es schöner aussieht:
      F12::
      Suspend
      SendInput t/me schaltet den Keybinder ein/aus{enter}
      return
      14. Zufallsprinzip
      Manchmal wünscht man sich einfach ein Zufallsprinzip wie wenn man dauernd die Taste 1 z.B für den Zoll (/zoll) drückt soll nicht immer der Text "/me öffnet den Zoll" oder so kommen sondern automatisch eine Abwechslung dies geht per Random Funktion. Dafür müssen wir erstmal den Zufall Definieren auf einem Kürzel wie Taste Z mit: z:: dannach als Definierung für den Zufall von nur 2 Verschiedenen Zufalls texten: Random, Zufall, 1, 2. Damit auch folgende Aktion abgespielt wird einfach darunter noch "GoSub, Zufallsbeispieltest%Zufall%" und ein "return. Nun könnt ihr anstatt mit Kürzel die Funktion nehmen per Zufallsbeispieltest1: und Zufallsbeispieltest2: anstatt 2Doppelpunkten nur einmal da es oben schon genommen wurde. Das Beispiel wäre:
      1::
      Random, Zufall, 1, 2
      GoSub, Beispiel%Zufall%
      Return

      Beispiel1:
      SendInput tBeispiel 1{enter}
      Return

      Beispiel2:
      SendInput tBeispiel 2{enter}
      Return
      Damit wir aber mehrere Zufallsmöglichkeiten haben ändern wir die Anzahl von 2 z.B auf 4 das heißt anstatt zwischen 1, und 2 nun zwischen 1 und 4 indem wir Random, Zufall, 1, 2 auf Random, Zufall, 1, 4 ändern. Das würde dann so aussehen:
      2::
      Random, Zufall, 1, 4
      GoSub, Nocheinbeispiel%Zufall%
      Return

      Nocheinbeispiel1:
      SendInput tBeispiel 1{enter}
      Return

      Nocheinbeispiel2:
      SendInput tBeispiel 2{enter}
      Return

      Nocheinbeispiel3:
      SendInput tBeispiel 3{enter}
      Return

      Nocheinbeispiel4:
      SendInput tBeispiel 4{enter}
      Return
      Ganz wichtig ist das wenn ihr mehrer Zufallsprinzipien einbaut das ihr den Runnamen wie in Beispiel 1 "Beispiel" oder in Beispiel 2 "Nocheinbeispiel" immer ändert bei jedem Zufallsprinzip sonder werden falsche abgerufen und dies doppel/dreifach und was habt ihr nicht gesehen, dies wollt ihr natürlich vermeiden deswegen immer ändern.


      15. Kurzbind (Eigener Befehl)
      Nun zu einem Klasse Teil nähmlich den Kurzbinds, ein Kurzbind ist zum Beispiel für GTA ein Virtueller Befehl ich mache hier Beispiele einmal einen Kurzbind für GTA und einmal einen Kurzbind für den Internet Browser beim Posten eines Beitrages. Zunächstmal anstatt KÜRZEL:: wie 1:: nähmen wir :?:/neuerbefehlsname:: wie :?:/test:: das heißt nicht ihr Könnt Ingame /test eingeben und dann spielt sich die Aktion wie gewohnt ab leider geht dies noch nicht vllt. in der Nächsten Autohotkey version aber ihr könnt "/test " eingeben das heißt Leertaste anstatt Enter Ingame ist leider so. Hier ist nun ein Beispiel ein Anrufbeantworter für GTA Ingame wenn jemand Anruft einfach T drücken /ab eingeben und Leertaste zum Bestätigen drücken dann kommen die Sätze, das Suspend Permit ist gemacht damit alle anderen Binds ausgeschaltet sind, ist Notwendig!
      :?:/p::
      Suspend Permit
      SendInput /p{Enter} ; damit er Ingame abhebt
      SendInput tGuten Tag sie sprechen mit DEINNAME.{Enter} ;Satz 1
      SendInput tWie kann ich ihnen behilflich sein?{Enter} ;Satz 2
      return
      Und nun ein anderes Beispiel für ein Post in einem Forum zum Beispiel hier, anstatt das man immer nach jedem Post z.B Mit freundlichen Grüßen MWP schreiben will oder einen anderne Text einfach das man indem man "sign" schreibt die unterschrift und alles kommt macht man folgendes:
      :?:sign::
      Suspend Permit
      SendInput Mit freundlichen Grüßen ihr MWP
      return
      Das g habe ich absichtlich weggelassen damit das Bild jetzt nicht kommt aber so würde dann deine unterschrift kommen du kannst auch BB Codes benutzen halt logisch. Ganz wichtig ist beim GTA Ingame Kurzbind das der erste Satz nach dem eingeben von /test KEIN t/enter hat als kein t vor dem / oder überhaupt t als erstes. Den dieser wird hier nicht benötig.


      16. Zur .ahk Compilen
      Da man nicht will das andere Leute den Keybinder den man selbst erstellt hat editieren können manchmal kann man ihn auch Compilen zur eigenanwendung nicht notwendig aber bei weitergabe würde ich dazu raten. Du drückst einfach nach dem speichern der Datei mit Rechtsklick auf die Datei und wählst "Compile Script" nun kommt ein neues Icon dort wo ein H oder A drauf ist das ist dann das Programm was keiner mehr Editieren kann.


      17. Zur .exe Converten
      Man kann es auch zur .exe Compilen dann ist es noch sicherer dazu braucht man das Programm ahk to exe das beim Download mit dabei ist (Link oben). Dann gehst du einfach auf "Start > Alle Programme > Autohotkey > Convert .exe to .ahk" und schon öffnet sich ein Programm. Beim ersten Browse wählst du dein Script aus. Beim zweiten wohin es gespeichert werden soll mit welchen Namen. Beim dritten nicht notwendig aber wenn man will ein eigenes Icon aussuchen und die letzten beiden Felder mit dem Passwort versehen das du dir ausdenken kannst ich schreibe immer irgendetwas rein wie "möplawlxdomg123testlol" bei beiden damit man es nicht entschlüsseln kann man selbst braucht das Password niewieder da man ja die .ahk hat. Zum Compilen hier auch Converten genannt drückst du auf den Button ">Convert<" und schon erstellt sich innerhalb weniger Millisekunden die Exe.
      Why do programmers always mix up Halloween and Christmas?
      Oct 31 == Dec 25

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von TPO ()

    • 18. GUI Fenster
      So für die fortgeschrittenen nun ein Fenster das sich beim Start des Keybinders/Programms öffnet nehmen wir ein Fenster mit den Maßen höhe 610Pxl und breite 960Pxl. Dazu packen wir GANZ oben in das Script über allem anderen egal was drine ist: Gui, Show, x30 y40 h610 w960, Hier der Fenstertitel. Zu den Koordinaten wird etwas in Punkt 19 erklärt. So nun unter dem Gui einfach ein return setzen und dann den restlichen Code. Das Fenster ist noch leer aber bei Punkt 21 kommen weiter sachen.
      Gui, Show, x30 y40 h610 w960, Hier der Fenstertitel!!!
      19. Koordinaten
      So nun zu den Koordinaten eben hatten wir x30 y40 h610 w960 das ist das gleiche wie in anderen Scriptsprachen eigentlich. Die x Route bedeutet wie weit es nach unten geht die y wie weit es nach rechts geht. Die h wie hoch das Fenster/Der Button oder sonst was ist und w wie breit das Fenster/Der Button oder sonst was ist. Das heißt bei dem Beispiel wie bei Punkt 18 das es 30Pixel unter dem Anfang des Desktop angezeigt wird(Das Fenster) und 40Pixel nach Rechts. Das Fenster ist 610Pixel hoch und 960Pixel breit.


      20. Exit Window
      Da das Programm/Das Script/Der Keybinder oder sonst was sich nicht schließt wenn man das Fenster (GUI) durch das Drücken des Kreuzes (Oben Rechts) drückt muss man unter dem Gui ganz nach unten unter dem Gui aber über dem Code wie #IfWinActive, GTA:SA:MP machen und unter dem return der unter Gui, Show, x30 ... ... ist. Also in prinzip so: Gui, Return, Settings, Binds. Ihr fügt einfach unter dem Return genau das ein:
      ...
      Gui, Show, x30 y40 h610 w960, Fenstertitel
      return
      ...
      GUIclose:
      ExitApp
      ...
      #IfWinActive, GTA:SA:MP
      ...
      #UseHook
      t::
      Suspend On
      SendInput t
      Hotkey, Enter, On
      ...
      Nur das fettgedruckte und die Punkte einfach wegdenken sind Platzhalter. Das bringt wenn man das Kreuz drückt um das Fenster zu schließen das auch das Programm beendet wird. Wenn man nicht will das das Programm durch die schließung des Fensters beendet wird diese 2Zeilen einfach weglassen.


      21. Bilder/Text
      Da das Fenster nicht so leer sein soll könnt ihr es Beliebig verändern/verzieren. Ich würde erstmal mit einem Bild und Textboxen anfangen da es leichter ist wenn ihr es euch einfach selbst anguckt ist hier das Beispiel das Bild kommt imemr direkt unter "Gui, Show, x30 y40 h610 w960, Hier der Fenstertitel!!!" aber über dem return unter dem GUI!!!
      Gui, Add, Picture, x0 y0 h610 w960, Bildname.png
      Die Routen sind die gleichen x0 und y0 bedeuten diesmal das es direkt an der oberen Ecke vom Fenster sitzt. Die h und w Kords einfach die gleichen wie groß das Fenster ist damit das Bild so groß wie das Fenster ist. Es werden nur .png Bilder gelesen und es MUSS .png hinten dranstehen NICHT an der Bilddatei sondern im Script: Wenn das Bild auf dem Desktop ist z.B und "Sonnenblume" heißt muss es im Script so sein: "Sonnenblume.png" dabei muss das Bild auf dem Desktop auch das .png Format haben. Das Bild MUSS im selben Ordner wie z.B im Ordner "Test" auf dem Desktop sein oder direkt auf dem desktop sein wenn das Script da ist! Nun zu den Textboxen oder Listboxen unterschiede werden noch bei Punkt 22 erklärt:
      Gui, Add, Edit, x10 y10 w50 h20 ReadOnly, Text1
      Gui, Add, Edit, x10 y40 w50 h20, Text2
      Gui, Add, Listbox, x10 y70 w50 h20 , Text3
      22. Textbox Arten
      So nun die erklärungen was was ist, die Beispiele sind aus Punkt 21 aus dem Zitat. Das erste (Gui, Add, Edit... ReadOnly...) ist eine Box mit grauen Hintergrund in der der Beliebiger Text steht wie im Beispiel "Text 1" sie ist nicht veränderbar desshalb auch "ReadOnly". Das zweite (Gui, Add, Edit, ..., Text2) ist eine Textbox mit weißen hintergrund wo der Text entfern/veränderbar ist wenn man den Keybinder startet. Das dritte (Gui, Add, Listbox, ..., Text3) ist eine Textbox mit weißen hintergrund wo der Hintergrund bei Anklicken grau oder blau wird (unterschiedlich) mit dem Text Inhalt "Text 3" der während des offenen Keybinders nicht veränder bar ist nur lesbar.

      23. Font/Farbe ändern
      Sicher kann man auch den Font (Schriftart/stil) und die Farbe (Schriftfarbe) ändern indem man einfach über den Buttons/Listboxen/editboxen etc. folgendes hinzufügt:
      Gui, Font, S10 Cblack, Arial
      ;Font ändern / Arial = Schriftart | CBlack = Color Black | S10 = Size 10
      Nur das Fett gedruckte daunter ist meine Erklärung dazu.

      24. Buttonerstellung
      Mit "Gui, Add, Button, x222 y272 w140 h30 , Text auf dem Button" kannst du einen Button erstellen einfach mal mit den Koordinaten rumspielen der Teil kommt unter die List/editboxen oder UNTER aber unter Gui, Add, Picture und Gui, Show!! Das ist wichtig. Der Button ist immer grau aber die Schriftart und Schriftfarbe ist veränderbar. Dies ist nur ein Button wenn man raufklickt passiert noch nichts die Funktion erkläre ich im nächsten Punkt.

      25. Buttonfunktion

      Damit ein Button den wir bei Punkt 25 erstellt haben hat noch keine Funktion wenn man draufklickt derzeitig diese fügen wir aber jetzt hinzu. Nur wir müssen vorher "Gui, Add, Button, x222 y272 w140 h30 , Text auf dem Button" in "Gui, Add, Button, x222 y272 w140 h30 gTestfunktionsname, Testname" ändern. Nun kannst du direkt daunter folgendes machen Testfunktionsname45: um die Funktion auszufügen und eine Nachricht (Message = MSG) an den der rauf drückt. Wir machen es einfach mal so die erklärungen zu Msgboxen (Nachrichten) erkläre ich dannach).
      Testfunktionsname:
      msgbox,0, Titel, Nachrichten Text!
      return
      26. Nachrichtenboxen(msgbox)
      Eine Nachricht funktioniert mit msgbox,STIL,TITEL,TEXT beispiel msgbox,0,Fehler,Es trat Fehler 1234 auf!. Die Styles sind welche Button daunter sind wie Ja und Nein oder nur der Button ok, oder Wiederholen Button. Damit die Nachrichten Box auch eine Funktion hat müsst ihr Punkt 28 genau durchlesen!
      Buttonbeschreibungen der wichtigsten Button Stile:
      0 - Ok
      1 - Ok/Abbrechen
      2 - Wiederholen/Ignorieren/Abbrechen
      3 - Ja/Nein/Abbrechen
      4 - Ja/Nein
      5 - Wiederholen/Abbrechen
      6 - Abbrechen/Wiederholen/Continue
      7 - Hilfe Button
      27. Nachrichtenboxfunktion
      Da durch "msgbox,4,Fehler,Es trat Fehler 1234 auf!" eine Nachricht kam passiert aber nichts wenn man auf den Button Ja oder Nein drückt deswegen hier die Funktion, es wird erst gefragt wenn man auf Den Button drückt ob man Beenden will wenn man ja drückt beendet das Programm wenn man nein Drückt passiert nichts außer das die nachricht weg geht.
      Testfunktionsname:
      msgbox,4,Beenden, Sind Sie sicher, dass Sie den Beenden wollen?
      IfMsgBox Yes
      2GUIclose:
      ExitApp
      return
      return
      28. Gui Creator
      Ihr lädt euch den Gui Creator runter (Hier klicken) mit dem ihr anstatt alles einzelnd mit Buttons/Bildern/Textboxen zu machen in einem Programm erstellen könnt ganz einfach der dann den Code generiert. Es ist wirklich einfach zu bedienen einfach etwas mit rumspielen und die Readme lesen! Oben sind folgende sachen abgebildet in der Reihe wo auch der "Ok" Button abgebildet ist: 1. Ok Button | 2. Checkbox | 3. Radiobox | 4. Textbox | 5. Groupbox | 6. Picture | 7. DropAndDownBox | 8. ComboBox | Listbox | ListView | DateTime | Kalender | Prozess | Slider | Hotkey | Tab | UpDown | ChangeFont. Die einzelnden Präzisen erklärungen folgen woanders. Durch das klicken auf einen dieser Sachen kannst du es auf die Fläche plazieren und die größe und einstellungen verändern auch per Rechtsklick. Genaue erklärungen findest du auch im Autohotkey Forum (Autohotkey.com).
      Why do programmers always mix up Halloween and Christmas?
      Oct 31 == Dec 25

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von TPO ()

    • 29. Klickfunktionen
      Nun kommen wir zur Klickfunktion das heißt wenn man auf einen Button klickt soll etwas bestimmtes Passieren. Zwar habe ich euch schon gezeigt wie es geht das wenn man auf einen Button klickt eine Nachricht kommt aber wie man sich diese Funktion aussucht zeige ich nun hier. Erstmal erstellen wir einen Button: Gui, Add, Button, x40 y40 w100 h20 gNeuesfenstertest, Testbuttonname den Button können wir nun dank gNeuesfenstertest mit "Neuesfenstertest:" ausrufen wenn man das gNeuesfenstertest weglässt kann man den Button durch "ButtonTestbuttonname::" ausrufen ich mache es lieber mit gNeuesfenstertest dieser Name muss bei jedem Button geändert werden sonst würde bei jedem Button die selbe Funktion gestartet werden, und das wollen wir nicht also nun haben wir den button aber keine Funktion die wir nun ausrufen mit:
      Neuesfenstertest:
      ;------Aktion------
      return
      So wir wollen nun die Funktion hinzufügen das ein NEUES Fenster kleines mit etwas Text geöffnet wird. Dafür erstellen wir wie oben die Funktion Gui, Show ... ist eigentlich ganz easy hier ein Beispiel:
      Neuesfenstertest:
      3Open:
      Gui, 3: Show, Updates
      Gui, 3: Add, Text, x10 y20 w420 h440 ,`n Testtext:`n-Hier steht dann nun der Text`nEr kann über mehrer Zeilen gehen immer mit dem Zeichen: `n nächste Zeile gemacht werden. `n Man kann zum Beispiel eine Update Box erstellen damit`nOder einen Credits Text oder Informationen.
      Gui, 3: Add, Button, x200 y460 w200 h20 gAusblenden,Ausblenden
      Gui, 3: Show, x30 y80 h480 w400 , Updatebox, Updatebox
      return
      So nun aber das man das Fenster auch schließen kann ist ganz einfach anstatt "GuiClose: und ExitApp" machen wir nun dies:
      GuiClose3:
      WinKill
      Die drei bedeutet das Fenster 3 geschlossen wird. Da es ein neues fenster ist das kommen soll steht auch überall Gui, 3: anstatt nur Gui, Show ... bei jedem Fenster das man erstellt muss man eine andere Zahl nehmen alle Zahlen gehen außer 0 1 und 2 da diese automatisch verlegt sind denn 0 und 1 sind das Hauptfenster und 2 wird für die Close Funktion benötigt vllt. wird das in der nächsten Autohotkey Version geändert.


      30. IniRead und Save
      So nun kommen wir zum iniRead und Save Prinzip erstmal da nicht jeder weiß was das ist damit kannst du z.B eine Edit Box (Weiße Box in der man im Keybinder/Programm Text reinschreiben kann veränderbar) erstellen wenn man dort was reinschreibt wird das in einer Textdatei gespeichert und beim Starten des Keybinders wieder gelesen man kann dies auch z.B Ingame für einen Anrufbeantworter benutzen wenn man /ab macht (Anrufbeantworter) mit Text kann man dann dort z.B %name% eintragen und dann erscheint der Name den man in die Box eingetragen hat oder der Text halt wie man will wenn man nichts einträgt steht dann dort "ERROR" Ingame da es leer ist. Man kann genau wie in anderen Scriptsprachen etwas abrufen per GuiControlGet, IfExist, if und anderen Sachen. Wir nehmen es einfach mal mit Nickname, zunächst brauchen wir eine Editbox und die Readfunktion darunter:
      IniRead, Nickname, Daten.ini, Ingame Daten:, Nickname
      Gui, Add, Edit, x100 y70 w140 h20 vnamen, %Nickname%
      Die Erklärungen sind folgendes "IniRead" bedeutet das er die Datei "Daten.ini" ausliest dort steht in der Datei am Ende [Ingame Daten:] da wir hinter Daten.ini Ingame Daten: stehen haben. Dies kann man beliebig verändern. Das Nickname bedeutet das dort steht unter [Ing....] "Nickname = " ca. bei jedem anders eigentlich da ich ein anderes System nutze. Und damit man das Nickname auch ausrufen kann benötigt man %Nickname% deswegen steht es unten in der Editbox vnamen ist nur die Funktion dafür um sie abzulesen wie gTestbutton nur da hier etwas eingetragen wird was variert ist es ein v. Das ist ja alles schön und gut nur bringt dies noch nichts da man auch das Speichern braucht.
      Mit GuiControlGet,Nickname ,,Namen können wir nun die Editbox auslesen und mit IniWrite, %Nickname%, Daten.ini, Ingame Daten: , Nickname etwas in die Datei reinschreiben. Dies fügen wir unter einen Button damit man es manuel speichern kann. Dazu erstellen wir einfach einen Button mit einer Funktion.
      Gui, Add, Button, x100 y100 w140 h20 gSavetest, Speichern
      Die Buttonfunktion müssen wir nun mit Savetest: abrufen und dann das GuiControlGet und IniWrite einfügen als Funktion und mit einem return versiegeln.
      Save:
      GuiControlGet,Nickname ,,Namen
      IniWrite, %Nickname%, Daten.ini, Ingame Daten: , Nickname
      ;------Weitere Funktionen hier.. ------
      return
      Da man auch wissen will ob man die Daten gespeichert hat kann man eine Nachricht einfügen wo ;--- ... steht. Indem man msgbox,262144,Daten gespeichert, Daten erfolgreich geseichert! hinzufügt ist ein Beispiel probiert es einfach mal. Die 262144 ist eine besondere Art von Msgbox mit einem Icon schaut selbst. Nun brauchen wir auch den Bind auf einem Kürzel wo wir den Nickname auslesen nehmen wir einfach mal einen Kurzbind wie /ab steht für Anrufbeantworter. Hier ist es fertig gemacht:
      :?:/ab::
      Suspend Permit
      SendInput /p{enter}
      SendInput tGuten Tag, das ist der Anrufbeantworter von %Nickname%,{enter}
      SendInput tleider bin ich gerade nicht erreichtbar bitte rufen sie später nochmal an.{enter}
      SendInput tVielen Dank und Schönen Tag noch wünscht ihnen %Nickname%{enter}
      SendInput t/h{enter}
      return
      Wenn wir nun Ingame /ab eingeben und mit Leertaste anstatt Enter bestätigen kommen diese Sätze und Ingame steht nicht %Nickname% mehr sondern der Name den du in die Box im Keybinder eingetragen hast.

      31. Prozess Balken
      So nun wieder etwas für fortgeschrittene wir erstellen ein Prozess balken auch genannt Progressbar. Erstmal erstellen wir dafür eine Prozessbar indem wir:
      Gui, Add, Progress, x50 y50 w300 h20 cBlue vProgressbarname
      Im Gui im Script einfügen. Mit den Koordinaten halt rumspielen oder den GuiCreator benutzen. Nun haben wir eine Progressbar doch die funktioniert nicht ohne eine Funktion die von vProgressbarname ausgespielt wird. Die Farbe der Progressbar ist Balu (cBlue = color Blue) es gibt fast alle Farben wie white, pink, yellow, black, grey könnt nehmen was ihr wollt ich nehme einfach mal Blau. So Nun können wir meinetwegen 2Buttons erstellen einmal + und einmal - mit der wir der Progressbar den Strich verlängern und verkürzen können.
      Gui, Add, Button, x50 y75 w150 h20 gProzessPlus, +
      Gui, Add, Button, x200 y75 w150 h20 gProzessMinus, -
      So nun haben wir zwei Buttons die aber ohne die Funktion auch nichts bringen diese fügen wir nun hinzu:
      ProzessPlus:
      GuiControl,, Progressbarname , +10
      return

      ProzessMinus:
      GuiControl,, Progressbarname , -10
      return
      So nun ist es eigentlich feritg man kann auf Plus drücken und die Bar steigt um 10% oder auf Minus und sie sinkt um 10% nun machen wir aber einfach mal eine Progressbar die Automatisch steigt mit einem Hindernis wo sie wieder auf 1% gesetzt wird und Nachrichtenboxen.
      Gui, Add, Progress, w300 h20 cBlue vHierdername
      sleep 500
      GuiControl,, Hierdername, +10
      sleep 500
      GuiControl,, Hierdername, +10
      sleep 500
      GuiControl,, Hierdername, +10
      sleep500
      GuiControl,, Hierdername, +10
      sleep 1000
      msgbox,0,Fehler 404,Es ist ein Fehler aufgetreten
      GuiControl,, Hierdername, 1
      sleep 500
      GuiControl,, Hierdername, +9
      sleep 500
      GuiControl,, Hierdername, +10
      sleep 500
      GuiControl,, Hierdername, +20
      sleep 500
      GuiControl,, Hierdername, +10
      sleep 500
      GuiControl,, Hierdername, +10
      sleep 500
      GuiControl,, Hierdername, +10
      sleep 500
      GuiControl,, Hierdername, +10
      sleep 500
      GuiControl,, Hierdername, +10
      sleep 500
      GuiControl,, Hierdername, +10
      sleep 500
      msgbox,0,Fertig, Prozess abgeschlossen...
      return


      32. Datums/Uhrzeit
      Nun erstellen wir eine Datums anzeige dafür ist wie bei fast allem Gui, Show vorrausgesetzt im Script oben wie es bei nem anderen Punkt steht. Nun denkt ihr sicher das es viel ist aber nein es ist ganz leicht nur eine Zeile:
      Gui, Add, DateTime, x400 y200 w100 h30 ,
      Das wars eigentlich schon aber ihr sollt natürlich mehr wissen als nur ein Datum hinzuzufügen. Man kann es auch anders hinufügen per %A_DD%.%A_MM%.%A_YYYY% Dies bedeutet DD = Tag, MM= Monat und YYYY= Jahr die Punkte halt als Trennzeichen sonst wären alle Zahlen zusammen. Nun intigrieren wir das in verschiedene Boxen:
      Gui, Add, Edit, x657 y10 w78 h18 v1 ReadOnly, %A_DD%.%A_MM%.%A_YYYY%
      Gui, Add, Edit, x657 y10 w78 h18 v1, %A_DD%.%A_MM%.%A_YYYY%
      Gui, Add, Text, x657 y10 w78 h18, %A_DD%.%A_MM%.%A_YYYY%
      Gui, Add, Listbox, x657 y10 w78 h18, %A_DD%.%A_MM%.%A_YYYY%
      Man kann es auch in den Fenster Titel intigrieren dafür schreiben wir einfach bei
      Gui, Show, x30 y40 h610 w960, Testfenstertitel
      Hinten dran mit Datum: %A_DD%.%A_MM%.%A_YYYY% rein das würde so aussehen:
      Gui, Show, x30 y40 h610 w960, Testfenstertitel mit Datum: %A_DD%.%A_MM%.%A_YYYY%
      Why do programmers always mix up Halloween and Christmas?
      Oct 31 == Dec 25

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von TPO ()

    • 31. Prozess Balken
      So nun wieder etwas für fortgeschrittene wir erstellen ein Prozess balken auch genannt Progressbar. Erstmal erstellen wir dafür eine Prozessbar indem wir:
      Gui, Add, Progress, x50 y50 w300 h20 cBlue vProgressbarname
      Im Gui im Script einfügen. Mit den Koordinaten halt rumspielen oder den GuiCreator benutzen. Nun haben wir eine Progressbar doch die funktioniert nicht ohne eine Funktion die von vProgressbarname ausgespielt wird. Die Farbe der Progressbar ist Balu (cBlue = color Blue) es gibt fast alle Farben wie white, pink, yellow, black, grey könnt nehmen was ihr wollt ich nehme einfach mal Blau. So Nun können wir meinetwegen 2Buttons erstellen einmal + und einmal - mit der wir der Progressbar den Strich verlängern und verkürzen können.
      Gui, Add, Button, x50 y75 w150 h20 gProzessPlus, +
      Gui, Add, Button, x200 y75 w150 h20 gProzessMinus, -
      So nun haben wir zwei Buttons die aber ohne die Funktion auch nichts bringen diese fügen wir nun hinzu:
      ProzessPlus:
      GuiControl,, Progressbarname , +10
      return

      ProzessMinus:
      GuiControl,, Progressbarname , -10
      return
      So nun ist es eigentlich feritg man kann auf Plus drücken und die Bar steigt um 10% oder auf Minus und sie sinkt um 10% nun machen wir aber einfach mal eine Progressbar die Automatisch steigt mit einem Hindernis wo sie wieder auf 1% gesetzt wird und Nachrichtenboxen.
      Gui, Add, Progress, w300 h20 cBlue vHierdername
      sleep 500
      GuiControl,, Hierdername, +10
      sleep 500
      GuiControl,, Hierdername, +10
      sleep 500
      GuiControl,, Hierdername, +10
      sleep500
      GuiControl,, Hierdername, +10
      sleep 1000
      msgbox,0,Fehler 404,Es ist ein Fehler aufgetreten
      GuiControl,, Hierdername, 1
      sleep 500
      GuiControl,, Hierdername, +9
      sleep 500
      GuiControl,, Hierdername, +10
      sleep 500
      GuiControl,, Hierdername, +20
      sleep 500
      GuiControl,, Hierdername, +10
      sleep 500
      GuiControl,, Hierdername, +10
      sleep 500
      GuiControl,, Hierdername, +10
      sleep 500
      GuiControl,, Hierdername, +10
      sleep 500
      GuiControl,, Hierdername, +10
      sleep 500
      GuiControl,, Hierdername, +10
      sleep 500
      msgbox,0,Fertig, Prozess abgeschlossen...
      return

      32. Datums/Uhrzeit
      Nun erstellen wir eine Datums anzeige dafür ist wie bei fast allem Gui, Show vorrausgesetzt im Script oben wie es bei nem anderen Punkt steht. Nun denkt ihr sicher das es viel ist aber nein es ist ganz leicht nur eine Zeile:
      Gui, Add, DateTime, x400 y200 w100 h30 ,
      Das wars eigentlich schon aber ihr sollt natürlich mehr wissen als nur ein Datum hinzuzufügen. Man kann es auch anders hinufügen per %A_DD%.%A_MM%.%A_YYYY% Dies bedeutet DD = Tag, MM= Monat und YYYY= Jahr die Punkte halt als Trennzeichen sonst wären alle Zahlen zusammen. Nun intigrieren wir das in verschiedene Boxen:
      Gui, Add, Edit, x657 y10 w78 h18 v1 ReadOnly, %A_DD%.%A_MM%.%A_YYYY%
      Gui, Add, Edit, x657 y10 w78 h18 v1, %A_DD%.%A_MM%.%A_YYYY%
      Gui, Add, Text, x657 y10 w78 h18, %A_DD%.%A_MM%.%A_YYYY%
      Gui, Add, Listbox, x657 y10 w78 h18, %A_DD%.%A_MM%.%A_YYYY%
      Man kann es auch in den Fenster Titel intigrieren dafür schreiben wir einfach bei
      Gui, Show, x30 y40 h610 w960, Testfenstertitel
      Hinten dran mit Datum: %A_DD%.%A_MM%.%A_YYYY% rein das würde so aussehen:
      Gui, Show, x30 y40 h610 w960, Testfenstertitel mit Datum: %A_DD%.%A_MM%.%A_YYYY%
      31. Stoppuhr erstellen (Ingame/Desktop)
      Nach einer langen Updatepause hier ein neuer Tutorial Abschnitt. Jeder weiß sicher was eine Stoppuhr ist, doch soetwas für SA:MP benutzen oder für den Desktop als Anwendung? Autohotkey ermöglicht dies! Als erstes bestimmen wir den Tastenkürzel also welche Taste gedrückt werden soll um die Zeit zu stoppen, hier im Beispiel nehme ich mal die Taste 1 (Zehnertastatur nicht Numpad)...

      Quellcode

      1. 1::

      Damit man auch benachrichtigt wird (Ingame):

      Quellcode

      1. SendInput tStoppuhr gestartet{!}{enter}

      Falls ihr eine Desktop Stoppuhr macht:

      Quellcode

      1. MsgBox, 4144, Stoppuhr, Zeit gestartet!, 3

      Nun brauchen wir eine Variable das bedeutet eine Zahl die man nicht sieht die bei 0 startet was am Ende die Zeit darstellen soll.

      Quellcode

      1. Zeit=0

      Doch diese Zahl geht nicht automatisch hoch nun gibt es zwei Möglichkeiten einmal einen Timer wiederholend mit Interval von einer Sekunde oder einfach einen Loop, ich tendiere zum Loop ist einfach und Praktischer.

      Quellcode

      1. Loop,
      2. {

      Jetzt haben wir den Loop der muss aber noch bewirken, dass die Variable (Virtuele Zahl) hochgezählt wird jede Sekunde um +1, das bewirken wir fast genau so wie in Pawn mit Variablenname++ oder Variablenname=2 doch wir wollen die Variable nicht höher setzen einmal sondern jedesmal also folgendes:

      Quellcode

      1. Zeit++

      Das Script kann sich leider keine Variablen merken wie Pawn,C++ etc. deswegen müssen wir die bisherige Zeit in eine Datei schreiben da sich die jede Sekunde vermehrt mehrmals sogar:

      Quellcode

      1. IniWrite,%Zeit% ,Daten.ini ,Einstellungen,Sek

      %Zeit% ist nun die Neue Zeit die gespeichert wird in der Datei "Daten.ini" in dem Ordner/Verzeichnis wo die .ahk Datei gespeichert ist. Es wurde als Sek (Sekunde) gespeichert das heißt %Zeit% heißt nun erstmal Sek (Sekunde). Doch man muss die Stopuhr auch Stoppen können dafür einfach ein Tastenkürzel auswählen und mit dem KeyWait Prinzip konfriguieren sieht dann so aus:

      Quellcode

      1. KeyWait, 2, D T1

      Nun kann man die Taste 2 drücken und dann wird ein ErrorLevel versendet doch dieser muss auch aufgerufen werden am besten direkt dannach ohne irgendwelche Verzögerungen!

      Quellcode

      1. If !ErrorLevel
      2. {

      So nun kommt alles was passieren soll wenn man die Stopuhr stoppt, erstmal müssen wir die Zeit wieder auslesen aus der Datei "Daten.ini" dies machen wir fast genau so wie wir es reingeschrieben haben nur wir benutzen IniRead.

      Quellcode

      1. IniRead,Zeit,Daten.ini,Einstellungen,Sek

      Doch man will nicht die gestoppte Zeit in Sekunden alleine haben, man kann es erweitern beliebig auf Stunden, Tage, Monate, Jahre soweit man es brauch doch Minuten reicht meiner ansicht meistens. Dafür ist eine kleine Rechnung die ich gerne erkläre aber nicht wirklich notwendig zu verstehen ist.

      Quellcode

      1. Min=%Zeit%
      2. Min/=60
      3. Min1=%Min%
      4. Min1*=60
      5. Sek=%Zeit%
      6. Sek-=%Min%

      Das wars auch schon fast, nun fehlt noch die Meldung das man den Keybinder gestoppt hat wieder in zwei Varianten einmal die für Ingame (SA:MP) und die für den Desktop, dabei müssen Minuten und Sekunden aus der Rechnung genommen werden dies ist ganz einfach mit dem %Prinzip%.

      Quellcode

      1. SendInput, t Stopuhr gestoppt{!} (%Min%Min - %SSek%Sek){enter}

      Und wieder auch für den Desktop verwender:

      Quellcode

      1. MsgBox, 4144, Stoppuhr, Zeit gestoppt, 10

      Das wars auch schon, doch man will ja nicht das die Stopuhr obwohl sie schon gestoppt ist durch den Loop an Resourcen verbraucht auch wenn es nur minimal ist. Desshalb beendet man den Loop noch vorher, und schließt die Klammern } ...

      Quellcode

      1. break
      2. }}
      Why do programmers always mix up Halloween and Christmas?
      Oct 31 == Dec 25

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von TPO ()

    • Hy ich wollt makl sagen das Tut ist super und hat mir sehr geholfen!

      Aber was mir fehlt ist eine update option so das sich die keybinder meiner freunde updatet wenn ich was neues rein mache.

      Und nun wollte ich mal euch fragen wie das mit der update taste!

      Und eine frage hab ich noch zu denn Buttons

      So erstellt man einen Button



      Gui, Add, Button, x222 y272 w140 h30 , Text auf dem Button



      Und so macht man sie Funktionsfähig



      Gui, Add, Button, x222 y272 w140 h30 gTestfunktionsname, Testname

      Und o iszt da der unterschied??



      Mfg

      ultras
    • Quellcode

      1. Gui, Add, Button, x222 y272 w140 h30 , Text auf dem Button

      Ist ein Button der dir nichts bringt außer du setzt im Gui unten die Funktion rein mit

      Quellcode

      1. ButtonText auf dem Button:
      2. ;Aktion
      3. return


      Doch dies kann zu Fehlern und missverständnissen führen falls du etwas anderes so genannt hast. Desshalb setzt du einfach ein gFUNKTIONNAME rein und dann ist es anders aufrufbar halt:

      Quellcode

      1. Gui, Add, Button, x222 y272 w140 h30 gTestfunktionsname, Testname

      Quellcode

      1. Testname:
      2. ;Aktion
      3. return


      Da muss nichtmehr ButtonBUTTONNAME stehen sondern nur Buttonname:

      Das mit dem AutoUpdater (So nenne ich das) habe ich noch auf dem PC liegen irgendwo nur es hier zu erklären wären nochmal 2Seiten mehr. Müsste es mal suchen und erklären hier aber erstmal wenig Zeit zurzeit^^ Guck mal im AutoHotkey Forum da ist es auch...
      Why do programmers always mix up Halloween and Christmas?
      Oct 31 == Dec 25
    • Also erstens das Tutorial is echt klasse!
      hat mir sehr geholfen

      da mein chaos ad iwie nich mehr richtig funktioniert (was weiß ich was da nimma geht ^^) hab ich mir auch per AHK einen gemacht
      doch jetzt hab ich 2 probleme damit :/

      1. Problem
      Ich möchte einen Befehl machen, wo er was in die Zeile schreibt und ich dann hinten ne nummer anhängen, hab das so gemacht:

      Quellcode

      1. 1::
      2. SendInput t/gettrash
      3. return


      wenn ich aber dann die zahl eingeben möchte, erscheint der keybind derjenigen zahl :/
      wenn ich aber einfach so ingame t drücke damit das chat ding aufgeht und ne zahl rein schreibe funktioniert es, da kommt dann nicht mein keybinder

      2. Problem
      irgendwie verträgt sich mein AHK Script nicht mit meinen Makro Tasten der Tastatur (Cyborg Keyboard)
      Wenn ich das Script anhabe und auf eine meiner Makro tasten drücke (benutze die auch als keybinder :D) dann öffnet sich nur das chatfenster und nix passiert, wenn ich nochmal die makro taste drücke kommt der keybind der makro taste nur mit einem t vorne dran (Beispiel: t/enter)
      ich muss jedes mal wenn ich eine makro taste drücke erst das script "ausschalten" und danach wieder anschalten
      gibts da nich noch ne andere lösung?^^


      hoffe du kannst mir helfen :>

      Aber wie gesagt, Tutorial is echt klasse, habs mir auch ganz durchgelesen :D


      edit: Hier noch die ersten zeilen vom script:

      Quellcode

      1. #IfWinActive, GTA:SA:MP
      2. #UseHook
      3. t::
      4. Suspend On
      5. SendInput t
      6. Hotkey, Enter, On
      7. Hotkey, Escape, On
      8. Hotkey, t, Off
      9. return
      10. NumpadEnter::
      11. Enter::
      12. Suspend Permit
      13. Suspend Off
      14. SendInput {Enter}
      15. Hotkey, t, On
      16. Hotkey, Enter, Off
      17. Hotkey, Escape, Off
      18. return
      19. Escape::
      20. Suspend Permit
      21. Suspend Off
      22. SendInput {Escape}
      23. Hotkey, t, On
      24. Hotkey, Enter, Off
      25. Hotkey, Escape, Off
      26. return
      27. 1::
      28. SendInput t/gettrash
      29. return
      30. 2::
      31. SendInput t/lsos{enter}
      32. sleep 1000
      33. SendInput t/lsog{enter}
      34. return
      Alles anzeigen

    • Hey mache alles wie du meinst also gebe das ein
      1t/carlock
      2t/refill 10
      3t/enter{enter}
      4t/Exit{exit}
      5Return
      also das sind die befehle die ich jetzt ma testen wolte und die ich auch brauche speichare alles dann mache ich run script aber dann komm eror at line 1 bei mir raus kannst du mir helfen

      von Russealex16_