AHK - API - Problem

  • Guten Tag liebe Community ich habe folgendes Problem.


    Ich möchte gerne, dass ich InGame (SAMP) die Taste "K" drücke, dann soll er den Befehl /checkkfz senden. Anschließend soll ich gefragt werden ob ich einen Screenshot machen will. Wenn ich Y drücke soll er einen Screenshot machen
    Als letztes soll er diesen gemachten Screenshot in einen anderen Ordner verschieben.
    Mein Problem ist folgendes:
    Wenn ich den Keybinder starte und InGame "k" drücke macht er genau das was ich will, aber nur EIN mal.
    Wenn ich, nachdem er den Screenshot verschoben hat und die Funktion damit beendet ist, nochmals "k" drücke, verschiebt er den Screenshot nicht.
    Ich habe mit RegExMatch gearbeitet damit er den Dateinamen des Screenshots ausliest.
    Zum testen habe ich bereits das Ergebnis (die Variable) des RegExMatch in eine .ini gespeichert und er liest es richtig aus, nur verschiebt er nichts mehr!!


    Ich hoffe ihr könnt mir helfen.. hier ist der Codeschnipsel:


  • Erstmal vorweg als kleine Korrektur: Eine if-Abfrage macht man mit zwei Gleichheitszeichen, sollte dann also so aussehen:

    Code
    k::
    If ( IsChatOpen() == 1 || IsDialogOpen() == 1 || IsMenuOpen() == 1 ) {
    SendInput, {%A_ThisHotkey%}
    return
    }


    Auch bei deiner RegExMatch Abfrage hast du einen kleinen Fehler drin.
    Die Zeichen

    Code
    \.*?+[{|()^$


    müssen mit einem Backslash gekennzeichnet werden.
    Das heißt, die Zeile mit RegExMatch sollte so aussehen:


    Code
    RegExMatch(screen,"Screenshot Taken \- (.*)",scr)

    Wenn es danach immer noch nicht funktioniert, kannst du ja mal ausprobieren, ob es daran liegt, dass du den Namen der Datei in eine .ini-Datei schreibt.
    Also einfach mit der Variable, die du aus der RegExMatch Funktion bekommst, die Verschiebung probieren.



    MfG

  • Hey, danke erstmal für deine Antwort!


    Ich denke nicht dass es an der RegExMatch Abfrage liegt.. er liest den Dateinamen ja richtig aus..


    Edit.
    @1337
    Habs nun ohne Iniwrite und Iniread probiert, also direkt mit der "scr1" variable.. dann ist das selbe Problem da.. er macht es nur beim 1. mal

    Einmal editiert, zuletzt von chakuzzza ()

  • Kann es sein dass das Bild einfach überschrieben wird? Was genau wird denn in "zeit" und "datum" gespeichert?
    Versuch es mal mit einem Zähler anstatt der Zeit als Dateiname

    Glaube ich eher weniger


    "datum" gibt dem Ordner den Namen, also das entsprechende Datum
    "zeit" gibt dem Screenshot den Dateinamen, bspw die jetztige wäre: 18.14.01 , also mit Sekunden..


    Er wird einfach nicht verschoben das 2. mal

  • Merkwürdig, denn bei mir funktioniert es so einwandfrei:


  • Und er macht es auch mehrmals hintereinander ?


    Also gibt es keine Möglichkeit das Datum bzw. Zeit als Dateiname zu nehmen?
    Es geht nämlich darum, dass es Abschleppscreens sind und falls eine Screenanfrage im Forum kommt, dass man den schnell findet..

  • Funktioniert das so bei dir?: