GuiControl liegt es an der neuen Version von AHK ? Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

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

GuiControl liegt es an der neuen Version von AHK ?

28 Mar 2021, 09:36

das hab ich schon hundert mal in der alten Version gemacht warum funktioniert das nicht
und das Edit Feld ist immer noch zu sehen ?

Code: Select all

Gui,2:Add,  Edit,  x60 y515 h30 w380 cffffff vmaile2 -E0x200 -0x4 BackgroundTrans, 
GuiControl, hide,maile2
Gui,2: show ,w500 h800 ,testgui



das Funktioniert auch nicht mehr und ich verstehe nicht warum

Code: Select all

Gui,2:Add,  Edit,  x60 y515 h30 w380 cffffff vmaile2 -E0x200 -0x4 BackgroundTrans, 
Gui,2: show ,w500 h800 ,testgui
gosub , test
return

test:

GuiControl, hide,maile2
gregster
Posts: 9022
Joined: 30 Sep 2013, 06:48

Re: GuiControl liegt es an der neuen Version von AHK ?

28 Mar 2021, 09:46

Näh, das ist schon richtig so. Verwende den Namen der GUI:

Code: Select all

Gui,2:Add,  Edit,  x60 y515 h30 w380 cffffff vmaile2 -E0x200 -0x4 BackgroundTrans, 
GuiControl, 2: hide,maile2
Gui,2: show ,w500 h800 ,testgui
https://ahkde.github.io/docs/commands/GuiControl.htm#Remarks wrote:Um anstelle des Standardfensters mit einem anderen Fenster zu agieren, fügen Sie dessen Namen oder Nummer (oder [in v1.1.03+] dessen HWND), gefolgt von einem Doppelpunkt, vor dem Unterbefehl ein. Zum Beispiel:

Code: Select all

GuiControl, MeineGui:Show, MeinButton
GuiControl, MeineGui:, MeineListBox, Element1|Element2
Dies ist auch dann erforderlich, wenn SteuerelementID die zugeordnete Variable eines Steuerelements ist, da jede Variable für mehrere GUI-Fenster verwendet werden kann. In [v1.1.20+] kann der GUI-Name weggelassen werden, wenn SteuerelementID die HWND-Nummer (eindeutige ID) eines Steuerelements ist.
User avatar
glnklein
Posts: 92
Joined: 23 Oct 2020, 04:26

Re: GuiControl liegt es an der neuen Version von AHK ?

28 Mar 2021, 09:54

danke funktionier , wie füge ich eine eindeutig id einem Fenster zu wenn ich z.b 3 stück habe

z.B

Code: Select all

Handle:=WinExist(A)
möchte ich dann auf Gui2 setzen
:D verwende AutoHotkey104805 :D ------------------------UPDATE auf ..1.1.33.02 erfolgreich , jetzt kommen neue Probleme :lolno:
gregster
Posts: 9022
Joined: 30 Sep 2013, 06:48

Re: GuiControl liegt es an der neuen Version von AHK ?  Topic is solved

28 Mar 2021, 10:12

auf Gui2 setzen
Naja, oben setzt du den GUI-Namen ja auf 2 - genau so in grün setzt du den auf Gui2.

glnklein wrote:
28 Mar 2021, 09:54

Code: Select all

Handle:=WinExist(A)
möchte ich dann auf Gui2 setzen
Die Handle überschreiben geht jedoch nicht, afaics. Die wird ja intern verwendet, die kannst du nicht mit deinem GUI-Namen "Gui2" überschreiben - ich wüsste jedenfalls nicht wofür. Du könntest Gui2 ja direkt als Gui-Namen verwenden (wie 2 oben).

Du könntest aber die hwnd der jeweiligen GUI anstatt von "Gui2" (oder "2") verwenden:
https://ahkde.github.io/docs/commands/Gui.htm#New wrote:Wenn die GUI keinen Namen hat und nicht als Standard-GUI definiert ist, muss sie anhand ihrer HWND-Nummer (eindeutigen ID) identifiziert werden. Verwenden Sie die Option +HwndGuiHwnd, um die HWND-Nummer des neuen Fensters in GuiHwnd zu speichern. Verwenden Sie dann Gui, %GuiHwnd%:Default, um dieses Fenster als Standardfenster für nachfolgende Gui-Befehle zu machen.
https://ahkde.github.io/docs/commands/Gui.htm#GuiHwndOutputVar wrote:HwndAusgabeVar [v1.1.04+]: Diese Option speichert die HWND-Nummer (eindeutige ID) der GUI in AusgabeVar. Zum Beispiel: Gui +HwndMeineGuiHwnd. Wenn man diese Option innerhalb einer Funktion verwendet, wird AusgabeVar als dynamische Variable behandelt. Die HWND-Nummer (eindeutige ID) einer GUI wird oft in Verbindung mit PostMessage, SendMessage und DllCall() genutzt. Außerdem kann diese Nummer direkt als ahk_id-FensterTitel oder anstelle eines GUI-Namens verwendet werden; zum Beispiel Gui %MeineGuiHwnd%:Destroy.

Wenn du dich aber auf das Zitat in meinem ersten Post beziehst, da geht es um die hwnd eines Steuerelements (nicht einer GUI) - das geht so:
https://ahkde.github.io/docs/commands/Gui.htm#Controls_Uncommon_Styles_and_Options wrote:HwndAusgabeVar [v1.0.46.01+]: Speichert die HWND-Nummer (eindeutige ID) des Steuerelements in AusgabeVar, wenn diese Option in Verbindung mit Gui Add genutzt wird. Zum Beispiel: Gui, Add, Edit, vMeinEdit HwndMeinEditHwnd. Wenn man diese Option innerhalb einer Funktion verwendet, wird AusgabeVar als dynamische Variable behandelt. Die HWND-Nummer (eindeutige ID) eines Steuerelements wird oft in Verbindung mit PostMessage, SendMessage und DllCall() genutzt. Außerdem kann diese Nummer direkt als ahk_id-FensterTitel verwendet werden (das auch mit versteckten Steuerelementen funktioniert, selbst wenn DetectHiddenWindows ausgeschaltet ist) oder [in v1.1.04+] bei GuiControl und GuiControlGet als SteuerelementID-Parameter verwendet werden. Die HWND-Nummer eines nicht-untergeordneten Fensters kann via Gui MeineGui:+HwndAusgabeVar abgerufen werden.
Damit geht das:

Code: Select all

Gui,2:Add,  Edit,  x60 y515 h30 w380 cffffff vmaile2 HwndMyEditHwnd -E0x200 -0x4 BackgroundTrans, 
GuiControl, hide, % MyEditHwnd
Gui,2: show ,w500 h800 ,testgui
kein GUI-Name notwendig, da die Handle eindeutig ist.
User avatar
glnklein
Posts: 92
Joined: 23 Oct 2020, 04:26

Re: GuiControl liegt es an der neuen Version von AHK ?

28 Mar 2021, 10:33

Super vielen dank für die ausführliche Erklärung
:D verwende AutoHotkey104805 :D ------------------------UPDATE auf ..1.1.33.02 erfolgreich , jetzt kommen neue Probleme :lolno:

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: gero and 61 guests