Ist eine Variable mit einem Steuerelement verknüpft? Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Rohwedder
Posts: 7679
Joined: 04 Jun 2014, 08:33
Location: Germany

Ist eine Variable mit einem Steuerelement verknüpft?

Post by Rohwedder » 30 May 2021, 04:41

Hallo,

Code: Select all

Gui, Add, Text, vMeinText
verknüpft die Variable MeinText mit einem Steuerelement, z.B. Static1.
Wie kann ich abfragen ob die Variable MeinText verknüpft wurde?

gregster
Posts: 9060
Joined: 30 Sep 2013, 06:48

Re: Ist eine Variable mit einem Steuerelement verknüpft?

Post by gregster » 30 May 2021, 05:31

Vielleicht sowas:

Code: Select all

Gui, Add, Text, vMeinText

GuiControlGet, outputvar, , meinText
if !errorlevel
	msgbox meinText ist eine vVariable.
else 
	msgbox nope

GuiControlGet, outputvar, , meinText2
if !errorlevel
	msgbox meinText2 ist eine vVariable.
else 
	msgbox nope
wobei errorlevel auch wahr/1 sein könnte, wenn "some other problem" aufgetreten ist. Aber Errorlevel = 0 sollte zumindest ein gutes Zeichen sein, dass die Variable einem Steuerelement zugewiesen wurde.

gregster
Posts: 9060
Joined: 30 Sep 2013, 06:48

Re: Ist eine Variable mit einem Steuerelement verknüpft?  Topic is solved

Post by gregster » 30 May 2021, 05:47

Um wirklich sicher zu gehen, müsste man wahrscheinlich den Namen des gefundenen Steuerelements checken, also:

Code: Select all

GuiControlGet, outputvar, name, meinText
if (outputvar = "meinText")
weil GuiControlGet anscheinend auch noch den Text von Kontrollelementen abfragt, wenn es keine entsprechende vVariable findet - könnte also false positives geben.
Last edited by gregster on 30 May 2021, 05:55, edited 2 times in total.
Reason: nochn Edit

Rohwedder
Posts: 7679
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Ist eine Variable mit einem Steuerelement verknüpft?

Post by Rohwedder » 31 May 2021, 02:55

Vielen herzlichen Dank!
So funktioniert es.

just me
Posts: 9485
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Ist eine Variable mit einem Steuerelement verknüpft?

Post by just me » 31 May 2021, 03:20

gregster wrote:weil GuiControlGet anscheinend auch noch den Text von Kontrollelementen abfragt, wenn es keine entsprechende vVariable findet - könnte also false positives geben.
Wenn in OutputVar der Name geliefert wird, der als ControlID übergeben wurde, gibt es diese Variable. ControlID wird deshalb als Variablenname betrachtet. Ob der Wert irgendwo als Text existiert, ist in diesem Fall egal.

Das wirkliche Problem ist für mich der Name des GUI.

gregster
Posts: 9060
Joined: 30 Sep 2013, 06:48

Re: Ist eine Variable mit einem Steuerelement verknüpft?

Post by gregster » 31 May 2021, 03:41

Die Möglichkeit des false positives bezog sich auf meinen ersten Lösungsversuch, in dem ich nicht das subcommand name verwendet habe. Dort kann outputvar u. U. auch Namen/ControlIDs enthalten, die nicht als Variablen existieren.

Das wirkliche Problem ist für mich der Name des GUI.
Mmmhja, ich nehm an, das funktioniert nur für das (aktuelle) Default GUI, wenn man keinen Gui-Namen spezifiziert. Aber die Anzahl an GUIs ist ja meistens kleiner als die Anzahl der vVariablen - die GUI-Namen muss man dann wohl noch selber nachhalten, und alle GUIs durchgehen. Oder man findet einen anderen Weg... :)

Edit: Man könnte vielleicht erstmal ListVars gegen die gesuchte Variable checken (z. B. mit Hilfe von lexikos' ScriptInfo()-Funktion).
Wenn die gesuchte Variable dort als globale Variable vorkommt, dann reicht das vielleicht schon als Info - oder man nimmt diese Info zum Anlass, genauer in den einzelnen (bekannten) GUIs nachzuforschen.
Aber wenn die Variable dort nicht vorkommt, dann wurde sie auch keinem Kontrollelement zugewiesen - jedenfalls noch nicht zum Zeitpunkt der Abfrage.
Last edited by gregster on 31 May 2021, 04:27, edited 2 times in total.
Reason: nochn Edit

Post Reply

Return to “Ich brauche Hilfe”