WinActivate

Aktiviert ein bestimmtes Fenster.

WinActivate , FensterTitel, FensterText, IgnoriereTitel, IgnoriereText

Parameter

FensterTitel

Der Titel oder andere Möglichkeiten zum Identifizieren des Zielfensters. Weitere Informationen finden Sie unter FensterTitel-Parameter.

FensterText

Eine Zeichenkette, die in einem der Textelemente des Zielfensters enthalten ist (eventuell vorhandene Textelemente können mit dem internen Tool Window Spy aufgedeckt werden). Versteckte Textelemente werden nur erkannt, wenn DetectHiddenText eingeschaltet ist.

IgnoriereTitel

Alle Fenster, die diesen Wert in ihren Titeln enthalten, werden ignoriert.

IgnoriereText

Alle Fenster, die diesen Wert in ihren Textelementen enthalten, werden ignoriert.

Bemerkungen

Wenn ein inaktives Fenster aktiv wird, wird es vom Betriebssystem in den Vordergrund gesetzt (setzt es an den Anfang des Stapels). Dies geschieht nicht, wenn das Fenster bereits aktiv ist.

Wenn das Fenster minimiert und inaktiv ist, wird es vor der Aktivierung automatisch wiederhergestellt. [v1.1.20+]: Wenn FensterTitel der Buchstabe "A" ist und die anderen Parameter weggelassen werden, wird das aktive Fenster wiederhergestellt. [v1.1.28.02+]: Das Fenster wird auch wiederhergestellt, wenn es bereits aktiv war.

Es werden sechs Versuche innerhalb von 60 ms unternommen, um das Zielfenster zu aktivieren. Wenn alle sechs Versuche fehlschlagen, sendet WinActivate automatisch {Alt 2} als Workaround für mögliche Einschränkungen, die durch das Betriebssystem erzwungen werden, und unternimmt dann einen siebten Versuch. Daher ist es üblicherweise nicht notwendig, nach WinActivate WinWaitActive, WinActive() oder IfWinNotActive auszuführen.

Wenn mehr als ein Fenster übereinstimmt, wird in der Regel das oberste übereinstimmende Fenster (typischerweise das zuletzt verwendete) aktiviert. Wenn das Fenster bereits aktiv ist, bleibt es aktiv, anstatt ein anderes übereinstimmendes Fenster darunter zu aktivieren. Wenn das aktive Fenster jedoch mit WinSet Bottom an das Ende des Stapels verschoben wird, kann auch ein anderes Fenster aktiviert werden, sofern das aktive Fenster übereinstimmt.

WinActivateBottom aktiviert das unterste übereinstimmende Fenster (typischerweise das am wenigsten verwendete).

GroupActivate aktiviert das nächste Fenster, das den Kriterien einer Fenstergruppe entspricht.

[v1.1.20+]: Wenn das aktive Fenster versteckt und DetectHiddenWindows ausgeschaltet ist, erfolgt nie eine Übereinstimmung. Stattdessen wird ein sichtbares passendes Fenster aktiviert, sofern so eins existiert.

Wenn ein Fenster unmittelbar nach Aktivieren eines anderen Fensters aktiviert wird, kann es je nach Betriebssystem und Einstellungen vorkommen, dass die Taskleistenschaltflächen anfangen zu blinken. Mit #WinActivateForce kann das verhindert werden.

Fenstertitel und -texte sind Groß-/Kleinschreibung-sensitiv. Versteckte Fenster werden nur erkannt, wenn DetectHiddenWindows eingeschaltet ist.

Bekanntes Problem: Läuft das Skript auf einem Computer oder Server, den man via Remote-Desktop ansteuert, kann WinActivate einen Hänger verursachen, wenn der Remote-Desktop-Client minimiert ist. Eine Übergangslösung ist es, Befehle zu verwenden, die keine Fensteraktivierung benötigen, wie z. B. ControlSend und ControlClick. Eine weitere Übergangslösung ist es, die folgende Registry-Einstellung auf dem lokalen Computer des Clienten anzuwenden:

; Ändern Sie HKCU zu HKLM, um alle Benutzer auf diesem System einzubeziehen.
RegWrite REG_DWORD, HKCU, Software\Microsoft\Terminal Server Client
    , RemoteDesktop_SuppressWhenMinimized, 2

WinActivateBottom, #WinActivateForce, SetTitleMatchMode, DetectHiddenWindows, Zuletzt Gefundenes Fenster, WinExist(), WinActive(), WinWaitActive, WinWait, WinWaitClose, WinClose, GroupActivate, WinSet

Beispiele

Wenn der Texteditor vorhanden ist, aktiviere ihn, ansonsten aktiviere den Taschenrechner.

if WinExist("Unbenannt - Editor")
    WinActivate ; Verwendet das von WinExist gefundene Fenster.
else
    WinActivate, Rechner