AHK-GUI in C++ einbinden?

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

User avatar
Holle
Posts: 187
Joined: 01 Oct 2013, 23:19

AHK-GUI in C++ einbinden?

03 Feb 2018, 07:19

Hallo AHK-Gemeinde,
vor ein paar Jahren habe ich noch fleissig in AHK programmiert, doch dann begann ich nochmal eine Weiterbildung als Fernstudium, wodurch mir leider die Zeit zum programmieren fehlte.
Nun brauche ich in der Schule C++. Mal abgesehen dass AHK deutlich komfortabler ist als C++ hatte ich dennoch wenig Schwierigkeiten mich in die "Konsolen"-Programmierung von C++ einzuarbeiten, da ich mit AHK-Kenntnissen doch recht gut auf C++ vorbereitet war.

Ich habe in C++ ein Programm geschrieben (quasi als Übung), welches nun in der Konsolen-Form vollendet ist. Da ich durch AHK aber verwöhnt bin wollte ich noch eine GUI dazu schreiben (wird in der Schule leider nicht drauf eingegangen).

Nachdem ich nun seit 3 Wochen vergeblich versucht habe eine "gescheite" GUI zu erstellen bin ich vor lauter Verzweiflung auf wxWidgets, Qt, Nana, usw. ausgewichen. Entweder bekam ich lauter Fehlermeldungen, oder es war mir einfach zu kompliziert eine einfache GUI damit zu erstellen.
Auch die Tutorials zur WINAPI-Programmieung konnten mich nicht zufrieden stellen, da meine Buttons dann im Win98-Style erstellt wurden (Grau, Eckig, ohne Effekte).

Es ist klar, dass für GUI-Applikationen AHK die bessere Wahl ist, aber leider kann ich mir die Programmiersprache in der Schule nicht aussuchen, deshalb brauche ich zwingend C++

Nun zu meiner Idee:

- Kann ich in AHK eine GUI erstellen und diese in C++ einbinden?
Wenn ja, wie? Und wie kann ich diese "extern" steuern?

- Alternativ (das wäre sogar noch besser): Kann ich die Funktion der GUI-Erstellung von AHK in C++ benutzen?
Ich habe mir mal den Quellcode von Lexikos angesehen (script_gui.cpp), aber meine Kenntnisse sind nicht annähernd ausreichend um diese Datei zu verwenden. Lexikos hat ja auch einige Standard-Dateien verändert (z.B. Windows.h). Wenn ich nun diese benutze besteht die Gefahr dass der Rest meines Scripts nicht mehr funktioniert, oder? Wenn ich die originalen Dateien verwende wird vermutlich "script_gui.cpp" nicht mehr funktionieren, oder vielleicht doch?

Nur zum Verständnis...
Es liegt mir fern irgendwelche Scripts von Lexikos zu "klauen", ich möchte diese nur "benuzten", da er es meiner Meinung nach "Perfekt" gelöst hat GUIs modern, umfangreich und vor allem "Einfach" zu erstellen. Es ist mir auch klar, dass diese GUIs nicht Plattformübergreifend sind, aber darauf kommt es mir ja auch gar nicht an.

Hat jemand von euch vielleicht schon mal so etwas ähnliches gemacht?

Ich wäre sehr dankbar, wenn mir jemand helfen könnte wie ich die geniale GUI-Erstellung von AHK in C++ nutzen könnte.
User avatar
Gerdi
Posts: 185
Joined: 03 Aug 2015, 18:48
Location: Germany
Contact:

Re: AHK-GUI in C++ einbinden?

04 Feb 2018, 08:36

Hallo Holle,

in meiner Hiwi-Taetigkeit, schon ewig her, war ich auf der Fortran-Seite dabei, wie ein C-Programm mit meinem Fortran-Programm komplizierte Boolsche Ausdruecke vereinfachte.
Leider kann ich Dir zur Technik bis auf das Untenstehende kaum mehr sagen.
Die Verknuepfung (ich glaube es wurde zwar einzeln kompiliert aber dennoch zu einem "Kompilat" vereinigt) ging damals einfacher als ich erwartet hatte.
Ein Detail habe ich noch in Erinnerung, das Arrays irgendwie umgekehrt im Speicher standen.

Also weiterhelfen kann ich Dir nicht aber vielleicht ein bisschen ermuntern es zu testen.
Win 10 Home (x64) and Win 11 Pro N
https://github.com/Grrdi/ZackZackOrdner/archive/master.zip --> get folders on the quick
User avatar
Holle
Posts: 187
Joined: 01 Oct 2013, 23:19

Re: AHK-GUI in C++ einbinden?

04 Feb 2018, 08:51

Danke.
Momentan bekomme ich nichtmal die C++-Source-Version von AHK in VS2017 zum laufen.
Meine Kenntnisse sind nicht annähern ausreichend.
Ideal wäre, dass ich in einem C++-Script lediglich per #include die GUI von AHK einbinde und dann mit den gleichen Befehlen (notfalls mit "define" nachhelfen) eine GUI erstellen kann.
Das mag für den einen oder anderen vielleicht "total einfach" sein, aber ich bin damit völlig überfordert. Gehen müsste es ja eigentlich, da AHK ja komplett in C++ geschrieben wurde.
Das Programmieren in AHK ist so schön einfach, sowohl die GUI-Erstellung, wie auch die Handhabung der Variablen. Auch die Syntax ist in C++ deutlich komplizierter.
AHK ist ja im Prinzip eine gigantische Scriptsammlung, welche das Programmieren in C++ drastisch vereinfacht. Dennoch bekomme ich es nicht hin das "GUI-Script" einzeln in C++ zu verwenden :-(
User avatar
jeeswg
Posts: 6902
Joined: 19 Dec 2016, 01:58
Location: UK

Re: AHK-GUI in C++ einbinden?

04 Feb 2018, 09:02

- AutoHotkey verwendet das Winapi zum Erstellen von Steuerelementen.
- Sie können die AutoHotkey Gui Befehle / Funktionen durch benutzerdefinierte Funktionen ersetzen, die DllCall verwenden.
- Dieser AHK-Code ist effektiv C++ - Pseudocode, der in C++ übersetzt werden kann.
- Hinweis: Die Verwendung von Winapi zum Erstellen von GUIs kann nur unter Windows durchgeführt werden.
- Für mich scheint dies der einfachste Ansatz zu sein, ich würde keinen AHK-Quellcode verwenden.
- Siehe den '[Gui]' Abschnitt für Beispiele:
AutoHotkey via DllCall: AutoHotkey functions as custom functions - AutoHotkey Community
https://autohotkey.com/boards/viewtopic.php?f=7&t=37871

[in Englisch geschrieben]
- AutoHotkey uses the Winapi to create controls.
- You can replace the AutoHotkey Gui commands/functions, with custom functions, that use DllCall.
- This AHK code is effectively C++ pseudocode which can be translated to C++.
- Note: Using the Winapi to create GUIs, can only be done on Windows.
- To me, this seems like the simplest approach, I wouldn't use any of the AHK source code.
- See the '[Gui]' section for examples:
AutoHotkey via DllCall: AutoHotkey functions as custom functions - AutoHotkey Community
https://autohotkey.com/boards/viewtopic.php?f=7&t=37871
homepage | tutorials | wish list | fun threads | donate
WARNING: copy your posts/messages before hitting Submit as you may lose them due to CAPTCHA
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: AHK-GUI in C++ einbinden?

04 Feb 2018, 11:45

Mit der console die gui beschicken, mit der gui die console füttern?
User avatar
Holle
Posts: 187
Joined: 01 Oct 2013, 23:19

Re: AHK-GUI in C++ einbinden?

04 Feb 2018, 11:55

Vielen Dank, das werde ich mir man ansehen.
Guest

Re: AHK-GUI in C++ einbinden?

04 Feb 2018, 12:17

Holle wrote:Auch die Tutorials zur WINAPI-Programmieung konnten mich nicht zufrieden stellen, da meine Buttons dann im Win98-Style erstellt wurden (Grau, Eckig, ohne Effekte).
https://msdn.microsoft.com/de-de/librar ... _manifests
User avatar
Holle
Posts: 187
Joined: 01 Oct 2013, 23:19

Re: AHK-GUI in C++ einbinden?

04 Feb 2018, 15:44

Der Link ist leider defekt :-(
gregster
Posts: 9001
Joined: 30 Sep 2013, 06:48

Re: AHK-GUI in C++ einbinden?

04 Feb 2018, 15:57

Versuchs mal mit Copy&Paste:

Code: Select all

https://msdn.microsoft.com/de-de/library/windows/desktop/bb773175(v=vs.85).aspx#using_manifests
Edit: Oder auch so:
https://msdn.microsoft.com/de-de/librar ... _manifests
User avatar
Holle
Posts: 187
Joined: 01 Oct 2013, 23:19

Re: AHK-GUI in C++ einbinden?

04 Feb 2018, 16:12

Oh, das sieht auch sehr interessant aus.
Vielen Dank.
Da habe ich morgen einiges zum lesen und probieren.
Top!
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: AHK-GUI in C++ einbinden?

04 Feb 2018, 16:22

gregster wrote:Versuchs mal mit Copy&Paste:

Code: Select all

https://msdn.microsoft.com/de-de/library/windows/desktop/bb773175(v=vs.85).aspx#using_manifests
Edit: Oder auch so:
https://msdn.microsoft.com/de-de/librar ... _manifests
"Klammrige" MSDN-links musst du leider grundsätzlich [url]en da die forum software diese per default nur anteilig "belinkt" :roll:
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: AHK-GUI in C++ einbinden?

04 Feb 2018, 17:21

Man kann AutoHotkey leider nur in Visual Studio 2015 kompilieren.
Recommends AHK Studio
User avatar
Holle
Posts: 187
Joined: 01 Oct 2013, 23:19

Re: AHK-GUI in C++ einbinden?

04 Feb 2018, 23:09

Achso. Das erklärt warum ich immer die Fehlermeldung erhalten habe.
Vielen Dank.

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 67 guests