AHK v2 oder v1

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

User avatar
glnklein
Posts: 116
Joined: 23 Oct 2020, 04:26

AHK v2 oder v1

10 May 2024, 02:59

guten morgen ,

ich kenne AHK v1 schon sehr lange ,trotzdem frage ich mich ob V2 in irgend etwas wirklich besser ist .

was denkt Ihr sollte man auf V2 umsteigen oder lohnt sich das nicht wirklich

Wo sind die unterschiede außer das befehle anders geschrieben werden,
ist es auch leistungsfähiger ?
:D verwende AutoHotkey104805 :D ------------------------UPDATE auf ..1.1.33.02 erfolgreich , jetzt kommen neue Probleme :lolno:
just me
Posts: 9525
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: AHK v2 oder v1

10 May 2024, 05:01

Moin,

es würde recht lange dauern, alle Unterschiede zu beschreiben. AHK v2 ist im Kern eine andere Sprache. Auf den ersten Blick ist vieles verwirrend, mit der Zeit erkennt man aber das Potential der Veränderungen. lexikos sei Dank ist der parallele Betrieb beider Versionen auf einem Rechner unkompliziert möglich.

Wenn ich Du wäre, würde ich zunächst versuchen, möglichst einfache eigene Skript umzustellen, um Dich an die neue Welt heranzutasten. Neue Skripte würde ich immer mit v2 schreiben. Wenn Du dann fit bist, kannst Du überlegen, ob Du alle Deine vorhandenen Skripte umstellen willst, ein Muss ist das nicht.

Bei der Umgewöhnung auf v2 wirst Du im Forum immer Hilfe bekommen.

Also, ab dafür!
User avatar
glnklein
Posts: 116
Joined: 23 Oct 2020, 04:26

Re: AHK v2 oder v1

10 May 2024, 06:02

danke für die antwort , kann ich einfach V2 herunterladen und instalieren und beim starten dan wählen , öffne mit v1 oder mit v2
:D verwende AutoHotkey104805 :D ------------------------UPDATE auf ..1.1.33.02 erfolgreich , jetzt kommen neue Probleme :lolno:
User avatar
Noitalommi_2
Posts: 274
Joined: 16 Aug 2023, 10:58

Re: AHK v2 oder v1

10 May 2024, 06:22

Hi.

Der Umstieg lohnt sich denn die einheitliche Syntax macht es viel angenehmer Skripte zu schreiben.


Hier was zum Lesen:
https://gist.github.com/Lexikos/a871ca393387b37204ccb4f36f2c5ddc

Hier ein kleiner Teil ins Deutsche übersetzt:
Lexikos *GoogelTranslate wrote: Welche Version soll ich installieren?
Installieren Sie beide.

Der in v2 enthaltene Launcher ermöglicht die nahezu transparente Verwendung von v1- und v2-Skripten auf einem System. Wenn die Versionsanforderung eines Skripts nicht explizit mit #Requires deklariert wird, kann der Launcher die erforderliche Version normalerweise anhand der Syntax erkennen.

Wenn Sie v2 installieren und versuchen, ein v1-Skript auszuführen, ohne zuerst v1 zu installieren, bietet Ihnen der Launcher in vielen Fällen an, die erforderliche Version automatisch zu installieren. Wenn Sie also nicht speziell beabsichtigen, v1-Skripte auszuführen, installieren Sie einfach v2.

SciTE4AutoHotkey unterstützt beide Versionen sofort, während VS Code beide mit der Installation entsprechender Erweiterungen unterstützen kann. Weitere Informationen finden Sie unter „Tools“.
Lexikos *GoogelTranslate wrote: Welche Version sollte ich als Anfänger lernen?
v2.

Beide Versionen ermöglichen die einfache Durchführung vielfältiger Aufgaben mit nur wenigen Codezeilen. Der größte Unterschied besteht in der Syntax – den Regeln und Mustern, die Sie lernen müssen, um funktionierenden Code zu schreiben.

Aus historischen Gründen gibt es in Version 1 zwei Arten von Syntax: Legacy-Syntax und Ausdrücke. Die veraltete Syntax erweckt den falschen Eindruck von Einfachheit, was für Nicht-Programmierer manchmal attraktiv ist, tatsächlich jedoch zu größerer Komplexität führt und häufig zu Verwirrung führt.

v2 verwendet durchgehend Ausdrücke und mehrere häufige Ursachen für Verwirrung wurden beseitigt. Wenn Sie Anfänger sind und nur einfache Aufgaben ausführen müssen, reicht es dennoch aus, nur ein paar einfache Muster zu lernen. Wenn Sie mehr benötigen, ist die Lernkurve sanfter, da nicht auf eine andere Syntax umgestellt werden muss.

v2 verfügt über eine gründlichere Fehlererkennung und -berichterstattung. Manchmal bedeutet dies, dass Sie zusätzlichen Code schreiben müssen, um zu vermeiden, dass etwas geschieht, was das Programm als ungültig erachtet. Im Gegenzug ist die Fehlerbehebung jedoch viel einfacher und der von Ihnen geschriebene Code ist zuverlässiger. Eine strengere Fehlererkennung trägt tendenziell auch dazu bei, den durch Fehler verursachten Schaden zu begrenzen.

Es stimmt leider, dass für das Lernen von Version 2 weniger Ressourcen zur Verfügung stehen als für Version 1, aber das wird sich mit der Zeit ändern. v2 selbst hat eine einfachere Syntax und ist leichter zu erlernen, sodass Sie möglicherweise feststellen werden, dass der relative Mangel an Ressourcen kein Problem darstellt, wenn Sie es ausprobieren.
Lexikos *GoogelTranslate wrote: Warum sollte ich als v1-Benutzer zu v2 wechseln?

Selbst wenn Sie kein Anfänger sind, können Sie – ich wage es zu behaupten – von der Vereinfachung der Syntax und der Beseitigung vieler häufiger Ursachen für Verwirrung profitieren. v2 enthält außerdem Hunderte einzelner Verbesserungen, die die Arbeit von über einem Jahrzehnt widerspiegeln.

Die Entwicklung von Version 1 wird eingestellt. siehe Ende von v1. Vielleicht haben Sie viel Zeit in das Erlernen von Version 1 und den Aufbau Ihrer Skriptsammlung investiert, aber wenn Sie bei Version 1 bleiben, müssen Sie mehr Zeit in ein Produkt investieren, das zu nichts führt. Jemand anderes könnte die Entwicklung von Version 1 übernehmen, aber rechnen Sie nicht damit, es sei denn, Sie sind jemand anderes.

Beachten Sie, dass ein Wechsel nicht bedeutet, dass Sie Version 1 sofort aufgeben oder alle Ihre Skripte konvertieren müssen. Sie können beides verwenden.
Lexikos *GoogelTranslate wrote: Muss ich als v1-Benutzer nicht eine völlig neue Sprache lernen, um v2 verwenden zu können?

Es wurde gesagt, dass v2 eine völlig andere Sprache hat; dass v1-Benutzer, die zu v2 wechseln, eine Menge neue Syntax oder Konzepte erlernen müssen und dabei ihre vorhandenen Sprachkenntnisse aufgeben müssen. Das ist bestenfalls zu stark vereinfacht und übertrieben.

v2 baut auf den gleichen Grundkonzepten wie v1 auf, konzentriert seine Syntax jedoch auf Ausdrücke. Wenn Sie Ausdrücke für Version 1 gelernt haben, sind Sie auf dem besten Weg, den Code von Version 2 zu verstehen. Die Hauptunterschiede bestehen in der Entfernung veralteter Syntax und Konzepte sowie einer robusteren Fehlererkennung und -berichterstattung. Neue Syntax und Konzepte sind im Allgemeinen kein verpflichtendes Erlernen; und sie sind da, um Ihnen zu helfen.

Als v1-Benutzer haben Sie sich wahrscheinlich viele Details gemerkt, etwa die Namen der Befehle, die Syntax der einzelnen Parameter und verschiedene Sonderregeln innerhalb der Sprache. Zwar haben sich viele kleine Details geändert und erfordern ein Umlernen, aber es gibt auch Details und Fallstricke, die Sie beim Schreiben von Code nicht mehr berücksichtigen müssen.
Lexikos *GoogelTranslate wrote: Warum sollte ich mir die Zeit nehmen, meine v1-Skripte in v2 zu konvertieren?

Warum sollte ich mir die Zeit nehmen, meine v1-Skripte in v2 zu konvertieren?
Beim Konvertieren von Code ergeben sich möglicherweise Verbesserungsmöglichkeiten aufgrund neuer Sprachfunktionen oder -verhaltensweisen oder weil Ihre Fähigkeiten seit dem Schreiben des ursprünglichen Codes gewachsen sind. Durch Verbesserungen der Fehlererkennung können Sie möglicherweise Fehler finden, die zuvor unentdeckt waren. Ich gebe zu, dass ich solche Fehler beim Aktualisieren meines eigenen Codes gefunden habe.

Aber vielleicht solltest du es nicht tun. Wenn Ihnen das Konvertieren von v1-Code nicht die beste Zeitverschwendung zu sein scheint oder wirtschaftlich keinen Sinn ergibt, können Sie weiterhin alte Skripte mit v1 ausführen und gleichzeitig neuen Code in v2 schreiben, wenn Sie dies wünschen. Das Installationsprogramm und die Support-Skripte für Version 2 sollen dies vereinfachen.

Meine Empfehlung ist, klein anzufangen; Schreiben Sie neue Skripte in Version 2 und lernen Sie ein wenig, bevor Sie versuchen, vorhandene Skripte zu konvertieren.

Es gibt Pläne für weitere Tools zur Unterstützung bei der Analyse und Konvertierung von Skripten, diese wurden jedoch noch nicht implementiert, da die Priorität darin bestand, v2 in eine stabile Version zu bringen. Es gibt einige vom Benutzer erstellte Konverter, allerdings mit erheblichen Einschränkungen.

Wenn das Konvertieren noch keine praktische Option ist, können Sie erwägen, v1-Bibliotheken mit AutoHotkey.dll zu laden und sie von v2 aus aufzurufen. import_v1lib und v1_func/v1_class_lib demonstrieren dies. Es gibt auch Pläne für eine DLL, die auf dem Hauptzweig von AutoHotkey basiert und über eine übersichtlichere Schnittstelle verfügt, um diesen Anwendungsfall zu erleichtern.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 12 guests