Fensterhandle um den Namen / Titel zurückgeben

8

Ich kann dieses Problem nicht lösen. Ich erhalte einen Fehler:

%Vor%

Es klingt sehr einfach und ist wahrscheinlich ... tut mir leid, dass ich so offensichtliche Fragen gestellt habe.

Hier ist mein Code:

%Vor%

Ich habe es auf viele verschiedene Arten versucht und jedes hat versagt. Vielen Dank im Voraus.

    
VixinG 25.11.2012, 02:05
quelle

4 Antworten

12

Vergiss nicht, dass du innerhalb der Schleife hWnd deklarierst - was bedeutet, dass es nur innerhalb der Schleife sichtbar ist. Was passiert, wenn der Fenstertitel nicht existiert? Wenn du es mit einem for machen willst, solltest du es außerhalb deiner Schleife deklarieren, es innerhalb der Schleife setzen und es dann zurückgeben ...

%Vor%     
Basic 25.11.2012, 02:10
quelle
3

Weil Sie hWnd innerhalb des if-Blocks deklarieren, kann auf die return-Anweisung, die sich außerhalb des if-Blocks befindet, nicht zugegriffen werden. Siehe Ссылка zur Erläuterung.

Der von Ihnen bereitgestellte Code kann durch Verschieben der Deklaration der hWnd-Variablen korrigiert werden:

%Vor%     
Mitch 25.11.2012 02:13
quelle
1

hWnd wird in der Schleife foreach deklariert. Der Kontext ist in foeach loop . Um seinen Wert zu erhalten, deklariere es außerhalb von foreach loop.

Benutze es so,

%Vor%     
Shiplu Mokaddim 25.11.2012 02:10
quelle
0

Kommen einige Jahre zu spät dazu, aber, wie andere bereits erwähnt haben, ist der Umfang von hWnd nur in der foreach Schleife.

Es ist jedoch erwähnenswert, dass, wenn Sie nichts anderes mit der Funktion tun, es zwei Probleme mit den Antworten anderer gibt:

  1. Die Variable hWnd ist eigentlich unnötig, da sie nur für eine Sache ist (als die Variable für return )
  2. Die foreach -Schleife ist ineffizient, da Sie auch nach dem Finden einer Übereinstimmung weiterhin den Rest der Prozesse durchsuchen. Tatsächlich wird es den letzten gefundenen Prozess zurückgeben, der übereinstimmt.

Angenommen, Sie möchten den letzten Prozess (Punkt 2) nicht abgleichen, dann ist dies eine sauberere und effizientere Funktion:

%Vor%     
Richard 08.08.2017 10:58
quelle

Tags und Links