Einfache Frage, ich muss nur etwas offensichtlich fehlen.Machen Sie mit mehreren Bedingungen
Ich versuche eine Subroutine zu erstellen, die fragt, ob ein Fenster geöffnet ist, und ich möchte dies mit einer Schleife erreichen, die ausgeführt wird, während zwei Bedingungen erfüllt sind. Ich erhalte eine Fehlermeldung:
Run time error 13: Type Mismatch
Auf dem Do While-Schleife, und nach auf SO noch durch die ähnlichen Probleme der Suche Ich bin nicht ganz sicher, was ich falsch mache.
Hier ist die Linie, die erroring heraus hält:
Sub FindHWND()
Dim HWNDOut as string
Dim Timer as Date
Timer = Now()
'This following line is the one erroring out.
Do While ((Now() < Timer + TimeValue("00:00:10")) And (HWNDOut = 0))
HWNDOut = CStr(Hex(FindWindowEx(0&, 0, "SunAwtFrame", "Graph.graphml - yEd")))
Debug.Print HWNDOut
Sleep (100)
Loop
'Other, following sub and code that is not relevant
End Sub
Wo Timer
die Now()
im Moment ist, bevor die Schleife beginnt, und HWNDOut
ist der Griff für das Fenster ich suche, die gefunden wird die Schleife.
All diese Schleife sieht alle 100 MS aus, um zu sehen, ob das Fenster zu einem Drittanbieterprogramm geöffnet wurde, um den Verlust von Befehlen in den nächsten Unterprogrammen zu verhindern.
Post Script: Wenn jemand irgendwelche Vorschläge hat, wie man das besser macht, bin ich ganz Ohr. Dies ist das erste Mal, dass ich die UI-Automatisierung nutze, damit ich noch lerne. Edit: Hinzugefügt mehr Code für den Kontext für den Kontext.
Auch durch "Andere, folgende Sub-und Code, der nicht relevant ist" ich meine, dass ich alles auskommentiert, die nicht mit dem Teil, der ich versuchte zu testen, nicht behandelt. Nur das Zeug, das direkt mit dieser Schleife beschäftigt ist, ist gerade aktiv. – JustinCoplin
Schauen Sie in der Hilfe auf den Unterschied zwischen 'FindWindow' und' FindWindowEx'. Du benutzt den falschen. – ACatInLove
@ACatInLove Nur so kann ich sicherstellen, dass ich es gerade habe, FindWindow Sucht nach einem Fenster mit dem angegebenen Klassen- und Fensternamen, beginnend bei der Wurzel und durchsucht seine Kinder Schicht für Schicht. FindWindowEx macht fast dasselbe, aber es beginnt mit dem bereitgestellten Elternfenster und ermöglicht es Ihnen, einige Fenster auszuschließen, indem Sie bestimmen, mit welchem Kind Sie die Suche beginnen. Ist das in Ordnung? – JustinCoplin