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.
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 ...
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% 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% 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:
hWnd
ist eigentlich unnötig, da sie nur für eine Sache ist (als die Variable für return
) 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%