Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

AutoHotkey v2


  • Please log in to reply
33 replies to this topic
Seidenweber
  • Moderators
  • 638 posts
  • Last active: Sep 06 2015 01:51 PM
  • Joined: 10 May 2011


Mich interessiert was es mit AutoHotkey v2.0 auf sich hat.

 

AHK 2.0 ist im Grunde DAS Autohotkey, was sich viele aktive Nutzer heute wünschen.

 

Chris hat vor rund 10 Jahren mit AHK angefangen.

 

Ursprünglich basiert AHK auf der Scriptsprache AutoIt, die allerdings damals keine HotKeys kannte. Genau das war für Crist der Grund, mit der Entwicklung von AutoHotkey zu beginnen und auch namensgebend.

 

Im Laufe der Zeit wurde AHK umfangreicher und auch die Syntax hat sich im Zuge der Weiterentwicklung verändert.

 

Allerdings war Rückwärtskompatibilität immer ein großes Thema, was einerseits für Verwirrung in der Schreibweise gesorgt hat - aber auch die Entwicklung behindert hat.

 

Außerdem wurden immer mehr Stimmen aus der Community laut, dass AHK nicht sein volles Potential ausschöpft und dass man sich mehr und bessere Funktionalität wünscht.

 

Das hat schließlich dazu geführt, dass Steve (aka Lexikos) die Arbeit an AHK_L aufgenommen hat, um die gewünschten Funktionen zu integrieren.

 

Chris selbst hatte niemals vor, AHK so weit auszubauen, sondern hatte mit seiner letzten Version im Grunde sein Ziel erreicht. Da er damit aber die Community - die ja mehr wollte - nicht mehr erreichen konnte, hat er vor etwa 3 Jahren offiziell seinen Austritt aus dem Projekt erklärt.

 

AHK 2.0 ist nun das langfristige Ziel in der Weiterentwicklung, die auf die hinderliche Rückwärtskompatibilität verzichtet und nur noch zu sich selbst kompatibel sein wird.

Die aktuellen AHK-Versionen kann man als "Übergangslösungen" auf dem Weg dahin verstehen.

 

Auch wenn das eine sehr langfristige Planung ist, wird irgendwann der Tag kommen, an dem AHK_L eingestellt und AHK 2.0 die offizielle Version wird.

 

Wer das heute schon möchte, kann sich mit der Alpha-Version der 2.0 befassen, um so eine Art Vorschau zu haben.

 

Aber es befindet sich alles in der Schwebe und es ist absolut nicht klar, wie die 2.0 Syntax am Ende genau aussehen wird.


All questions & answers are related to AHK 1.1.19.03 x64 Unicode

 


SAPlayer
  • Members
  • 403 posts
  • Last active: Apr 11 2014 04:45 PM
  • Joined: 06 Nov 2012

AHK 2.0 ist im Grunde DAS Autohotkey, was sich viele aktive Nutzer heute wünschen.

Ich gehöre übrigens zu einem dieser Nutzer - auch wenn wirklich sehr viel umgeschrieben werden muss (schon allein, wenn man sich anschaut, was alles gelöscht und umbenannt wurde), bringt es einige Funktionen, die ich schon lange vermisse (Befehle als Funktionen - nativ, Automatisches Umwandeln von Strings, die Zahlen enthalten, A_MsgBoxResult, Array Args, Verbessertes StrSplit()).

Schon allein wegen diesen Funktionalitäten nehme ich die Herausforderung in Kauf, meine gesamten Scripte umzuschreiben.

 

 

Könntest du eine Topic darüber machen?
Weil 4 Stunden Arbeit.

Naja, ich meine, es steht in meiner Signatur, das sollte meiner Meinung nach reichen ;)

Ich schätze viel mehr die Arbeit von Ragnar, der die gesamte Dokumentation ins Deutsche übersetzt hat (z.B. allein die Variablen-Seite ist deutlich größer wie der gesamte v2-Changelog), und wenn v2 offiziell wird, dann hat der auch erstmal ordentlich was zu tun tongue.png )



Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012

Nein, mir ist es in deiner Signatur nicht aufgefallen ich würde auch zu einem Extra-Thread raten und diesen dann auch am besten anpinnen, immerhin ist AHK 2.0 ein ziemlich wichtiges Thema im Forum.


Find the recent autohotkey version here: ahkscript.org


nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Die Frage ist wer es anpinnen kann... :D


Visit the new forum ahkscript.org.

http://ahkscript.org


SAPlayer
  • Members
  • 403 posts
  • Last active: Apr 11 2014 04:45 PM
  • Joined: 06 Nov 2012

Mal um die Diskussion hier wieder ein wenig anzukurbeln:

Wie fändet ihr es, wenn der Umstieg von AHK_L auf AHK v2 schrittweise durchgeführt wird und nicht auf einen Schuss?

Ich meine, manche Sachen kann man schon jetzt ändern, z.B. = zu := machen oder IfWinActive zu if(WinActive()) abändern, aber ich fände es schön, wenn man z.B. Sachen, die schon fertig sind, wie z.B. A_MsgBoxResult schon jetzt neben IfMsgBox nutzen kann.

So kann man sein(e) Script(s) mit der Zeit immer mal wieder anpassen und muss nicht alles auf einen Schuss machen.

 

Was haltet ihr davon?



fump2000
  • Members
  • 591 posts
  • Last active: Nov 11 2015 07:52 AM
  • Joined: 01 Nov 2012

Fänd ich super!!!! So würde ich jetzt schon Stück für Stück meine Scripte anpassen. Ich fürchte wenn es auf einem Schlag passieren würde, dass ich dann sehr viele Probleme haben werde.



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Naja ich seh das Problem nicht das Stück für Stück anpassen sondern die Dauer des ganzen.

Es werden jeden Tag neue Skripte geschrieben.

Ein Rewrite zu machen dauert ungefähr eben so lange.

Also ist jede Zeit die wir weiterhin mit AHK v 1.1 verbringen Quasi verschwendet.

(Obwohl die Skripte dann immer noch auf AHK 1.1 funktionieren sollten.)

 

D.h. bin ich dafür:

Weil jede neue eingebaute Neuerung dann weniger arbeit bei dem rewrite ist.


Visit the new forum ahkscript.org.

http://ahkscript.org


strobo
  • Members
  • 359 posts
  • Last active: Mar 10 2015 08:13 PM
  • Joined: 19 Jun 2012

Ich kann SAPlayers Vorschlag nur unterstützen, ich hab aber auch nicht die Arbeit,  die neuen (kompatiblen) Funktionen in die "alte" AHK-Version zu integrieren;)

Insgesamt wird AHKv2 bestimmt angenehmer als die jetzige Version, aber
    (1) es ist alpha. Muss nix heissen, ich werd aber mind. auf beta warten können.
    (2) gibts da überhaupt die libs, die ich brauche?
    (3) never change a ..., eher bastel ich ne proxy.exe, die den passenden (portablen) Interpreter raussucht. Der lib-Suchpfad bietet wohl auch genug Möglichkeiten für parallelen Betrieb.
    (4) dass ich in if (expr) die Klammern weglassen kann, ist für mich jetzt auch nicht so das Killer-Feature;)
Also etwa AHK_L 3:1 AHKv2.
 


Regards,
Babba

bichlepa
  • Members
  • 62 posts
  • Last active: Feb 19 2019 08:39 PM
  • Joined: 04 Jul 2011

Die meisten Änderungen sind soviel ich weiß doch bloß eine Änderung des Syntax. Da ein Rewrite dadurch eine sehr algorithmische und stupide Arbeit ist, könnte man doch eine Art Skript-Portierer schreiben, der zumindest den Großteil der Arbeit fehlerfrei macht.
Oder gäbe es da Probleme? Ich habe mich nämlich noch nicht sonderlich für AHKv2 interessiert.



nnnik
  • Members
  • 1625 posts
  • Last active: Jan 24 2019 02:19 PM
  • Joined: 28 Jul 2012

Nun ja ich kann die meisten von babbas Argumenten entkräften.

Insgesamt wird AHKv2 bestimmt angenehmer als die jetzige Version, aber
    (1) es ist alpha. Muss nix heissen, ich werd aber mind. auf beta warten können.
    (2) gibts da überhaupt die libs, die ich brauche?

@1 bei einer Schrittweisen Umsetzung kann man die Sachen rausuchen die schon funktionieren/festgelegt sind.

@2 Ja sollte es z.B. sollten die meisten Libs noch funktionieren wenn man z.B. den = Zuweisungsoperator entfernt.

@4 nenn mich dumm aber ich hab eine halbe Stunde benötigt um diesen Fehler zu finden.

Die meisten Änderungen sind soviel ich weiß doch bloß eine Änderung des Syntax. 
Da ein Rewrite dadurch eine sehr algorithmische und stupide Arbeit ist, könnte man doch eine Art Skript-Portierer schreiben, 
der zumindest den Großteil der Arbeit fehlerfrei macht.

Ja aber überleg mal schon den = Zuweisungsoperator, was man da alles beachten muss.

z.B.

a=hallo ;a:="hallo"
b= % DllCall... ;b:=DllCall...
c=%hallo% ;c:=hallo

Es wär ein ziemlicher aufwand, da vorallem viele Features entfernt wurden die jetzt ein Workaround erfordern.

 

Trotztdem glaube ich, dass es möglich ist, bloss halt enorm aufwendig.


Visit the new forum ahkscript.org.

http://ahkscript.org


SAPlayer
  • Members
  • 403 posts
  • Last active: Apr 11 2014 04:45 PM
  • Joined: 06 Nov 2012

Zu babbas zweitem Argument:

Naja, ich denke, die großen Libs werden relativ schnell umgeschrieben (nicht umbedingt vom Verfasser). Das Problem ist dann aber auch, dass man eine Version für AHK_L und eine für AHK v2 braucht, solange AHK_L noch genutzt wird.

 

 

Und ja, für viele Sachen könnte man einen Portierer schreiben, aber leider nicht für alle.

Man könnte z.B. auch ein Programm schreiben, das alles (oder fast alles), was geändert werden muss/sollte, anzeigt (das ist nicht allzu schwer zu schreiben, nur muss man halt selbst Hand anlegen). Damit könnte ein Fehlverhalten vermieden werden.

Aber ich meine, sowas wie = zu := kann man ja jetzt schon machen (und ich habe es glücklicherweise schon immer gemacht), das wird ja schon in AHK Basic voll unterstützt.

 

@bichlepa:

Wenn du dich etwas mehr mit AHK v2 befassen willst, kannst du mal dem Link in meiner Signatur folgen ;)



strobo
  • Members
  • 359 posts
  • Last active: Mar 10 2015 08:13 PM
  • Joined: 19 Jun 2012

@nnnik:
Ne, ich nenn dich nicht dumm, nur was entkräftest du da?

Der zweite Absatz ist nur ein Abriss warum AHKv2 bei mir (noch) keinen Einzug findet (, trotz syntaktischer Vorteile). SAPlayers Vorschlag begrüsse ich weiterhin wie im ersten Absatz.

Naja, und falls es nicht obiges Missverständnis war:
(1) alpha heisst für mich, ich muss mich schlau machen, welche Features es sicher in die beta schaffen, ansonsten müsste ich ja vllt sogar von alpha nach beta porten. no way.
(2) Okay, wenn eine lib dann nicht funzt, schreib ich in den topic "nnnik meint aber, die lib sollte funzen, wenn man z.b. den = Operator entfernt". Ne, ernsthaft, für mich ist dieser Punkt entkräftet, wenn es die lib gibt, nicht später und nicht früher.
(4) Sollte nur heissen, dass ich auch noch nicht das Killer-Feature gefunden habe, weswegen ich umsteigen sollte. Vllt weisst du eins?
Für mich hat AHK_L nun mal noch die Nase vorn, trotz deiner Entkräftungen;)
 


Regards,
Babba

Seidenweber
  • Moderators
  • 638 posts
  • Last active: Sep 06 2015 01:51 PM
  • Joined: 10 May 2011

    (3) never change a ..., eher bastel ich ne proxy.exe, die den passenden (portablen) Interpreter raussucht.

 

Die Dateiendung der Scripte ist wahlfrei.

 

*.ahk ist naheliegend, aber nicht zwingend. AHK akzeptiert auch alle anderen Dateiendungen, die mit dem Interpreter assoziiert sind.

 

Du musst nur Endungen, wie z.B. *.ahk2 oder *.ahk1 mit den entsprechenden Interpretern verbinden und ggf. mit RegEdit die Kompiler-Aufrufe anpassen.


All questions & answers are related to AHK 1.1.19.03 x64 Unicode

 


strobo
  • Members
  • 359 posts
  • Last active: Mar 10 2015 08:13 PM
  • Joined: 19 Jun 2012

Jupp, ginge auch. Ich würde dafür aber nicht von der v2 Standard Endung abweichen. Diese wird sicherlich hier und da hart-kodiert in v2-Skripten (wie auch .ahk in AHK-Skripten). Soll heissen, bei gleicher Endung nähme ich ne proxy.exe. Um Code aus notepad++ heraus auszuführen, benutze ich schon länger ne proxy (unabhängig von v2) ohne Probleme.
 


Regards,
Babba

Alibaba
  • Members
  • 435 posts
  • Last active: Nov 19 2014 04:21 PM
  • Joined: 01 Nov 2012

Naja ich muss sowieso nicht so viel umschreiben, deshalb ist mir die Art und Weise des Umstieges egal... Obwohl mir "schnell und schmerzfrei" irgendwie trotzdem sympatischer ist als "langsam und qualvoll"... happy.png


Find the recent autohotkey version here: ahkscript.org