Ladefehler bei nicht vorhandener Funktion umgehen Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Johnny R
Posts: 232
Joined: 03 Oct 2013, 02:07

Ladefehler bei nicht vorhandener Funktion umgehen

14 Jul 2018, 02:58

Angenommen, ich habe folgendes Skript:

Code: [Select all] [Download] GeSHi © Codebox Plus

Var1 := 1
Var2 := 2
x := 3

If A_AHKVersion>= 1.1.27
x := Max(Var1, Var2)

MsgBox % x
Return

Die Funktion MAX() gibt es in AHK erst ab Version 1.1.27. Wenn ich die Funktion in einem Skript unter einer AHK-Version verwende, die niedriger als v1.1.27 ist, gibt es eine Fehlermeldung und das Skript wird unter Hinweis auf die inexistente Version nicht geladen. Gibt es eine Möglichkeit die Zeile 6 (mit dem Inhalt x := Max(Var1, Var2)) per "Präprozessoranweisung" einfach zu umgehen um den Ladefehler zu vermeiden, also so, dass diese Zeile bei niedrigeren Versionen ganz einfach nicht "compiliert", bzw. interpretiert wird, also von AHK als "Kommentar" o. ä. verstanden und behandelt wird wird?
Last edited by Johnny R on 14 Jul 2018, 03:50, edited 1 time in total.
wolf_II
Posts: 2100
Joined: 08 Feb 2015, 20:55

Re: Ladefehler bei nicht vorhandener Funktion umgehen

14 Jul 2018, 03:09

Try, x := Max(Var1, Var2) ist keine "Präprozessoranweisung", sondern ein normaler Befehl. I hoffe das hilft.
Tested, funktioniert nicht, sorry
just me
Posts: 5458
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Ladefehler bei nicht vorhandener Funktion umgehen

14 Jul 2018, 03:47

:arrow: IsFunc()

Code: [Select all] [Download] GeSHi © Codebox Plus

#NoEnv
Var1 := 1
Var2 := 2
X := 3

If IsFunc(FuncRef := Func("Max"))
X := FuncRef.Call(Var1, Var2)

MsgBox, %X%
Return
User avatar
nnnik
Posts: 3201
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Ladefehler bei nicht vorhandener Funktion umgehen

14 Jul 2018, 06:14

Zusätzlich zu der Technik die just me empfiehlt würde ich dir empfehlen dann eine Meldung anzuzeigen, dass eine neue AHK Version benötigt wird.
Zudem würde ich eine superglobale Variable max anlegen welche den Wert von func("max") enthält:

Code: [Select all] [Download] GeSHi © Codebox Plus

if (A_AHKVersion...) { ;ich erinnere mich nicht mehr an den exakten Vergleich
Msgbox Your AutoHotkey Version is too outdated to run this script please update to make it work.
Exit App, -1
}
global max := func("max")
.
.
.
x := %max%(var1, var2)

Das erlaubt es dir jederzeit einen Ersatz einzubauen der für eine niedrigere AHK Version alle Aufrufe zu ersetzen.
Recommends AHK Studio
Johnny R
Posts: 232
Joined: 03 Oct 2013, 02:07

Re: Ladefehler bei nicht vorhandener Funktion umgehen  Topic is solved

15 Jul 2018, 02:18

Bin begeistert! Funktioniert sehr gut. Vielen Dank!

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 3 guests