API macht Probleme

  • Guten Tag liebe Leute,


    heute wollte ich mal einen Keybinder mit API schreiben allerdings sagt er mir er findet die api.dll nicht. Es liegt im gleichem Verzeichnis wie der Keybinder.



    PATH_API := RelToAbs(A_ScriptDir, "API.dll")



    hModule := DllCall("LoadLibrary", Str, PATH_API)
    if(hModule == -1 || hModule == 0)
    {
    MsgBox, 48, API - Fehler, Die API.dll konnte nicht gefunden werden.`nDer Keybinder wird nun beendet.
    ExitApp
    }


    wo kann der fehler sein ?

  • Lag tatsächlich an der Version wie ich feststellen musste. Mache es nun mit UDF und es klappt erstmal


    //edit


    Eine Frage habe ich gerade, wie kann ich einen Befehl solange ausführen lassen bis ein bestimmter Text im Chat angezeigt wird. Dann soll der Befehl nicht wiederholt werden sondern erst nach 15 Minuten wieder

    Einmal editiert, zuletzt von robbi2304 ()

  • Am besten mit einem bzw. zwei Timern. Sagen wir mal, der Befehl soll alle 2 Sekunden ausgeführt werden:


    Du könntest Timer1 in der Zeit, wo gewartet wird auch stoppen, wenn du keine anderen Chatnachrichten auslesen willst.

  • Am besten mit einem bzw. zwei Timern. Sagen wir mal, der Befehl soll alle 2 Sekunden ausgeführt werden:


    Du könntest Timer1 in der Zeit, wo gewartet wird auch stoppen, wenn du keine anderen Chatnachrichten auslesen willst.

    Danke dir. Wird der Timer hier Automatisch gestartet sobald das Script geöffnet wird oder muss ich ihm noch einen start parameter geben ?

  • PHP
    global timerWait := false
    SetTimer, Timer1, 50
    SetTimer, Timer2, 2000

    Das hier oben unter die Deklarationen (Include etc.) damit wird es automatisch gestartet.
    Am besten noch an den Anfang der Timer

    Code
    if (!WinActive("GTA:SA:MP"))
       return

    einfügen.

  • Ich weiß nun nicht inwieweit ich was falsch gemacht habe. Aufjedenfall habe ich etwas falsch gemacht.


    Hier mal der gesamte Code



    #IfWinActive, GTA:SA:MP ; Folgende Hotkeys Funktionieren nur wenn GTA SA:MP geöffnet ist
    #UseHook
    #Include SAMP.ahk



    ~t::
    Suspend On
    Hotkey, Enter, On
    Hotkey, Escape, On
    Hotkey, t, Off
    return
    NumpadEnter::
    Enter::
    Suspend Permit
    Suspend Off
    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



    if (!WinActive("GTA:SA:MP"))
    return
    global timerWait := false
    SetTimer, Timer1, 1000
    SetTimer, Timer2, 2000
    Timer1:
    GetChatLine(0, line)
    if (InStr(line, "Du kannst erst in (.*) Minuten wieder angeln")) {
    SetTimer, Timer2, 10000, 1 ; // 10000 = 10 Sekunden, 15 Minuten = 900000
    timerWait := true
    }
    return



    Timer2:
    SendChat("/throwbackall")
    if (timerWait) {
    timerWait := false
    SetTimer, Timer2, 2000
    }
    return

  • Ich würde es so machen:


    Ich rate dir, dich in AHK und Funktionen, die du benutzen willst, einfach mal einzulesen, dann kannst du einfache Fehler vermeiden :)
    http://ahkde.github.io/docs/AutoHotkey.htm