Share via


AppActivate-Funktion

Aktualisiert: November 2007

Aktiviert eine Anwendung, die bereits ausgeführt wird.

Public Overloads Sub AppActivate( _
      ByVal { Title As String | ProcessId As Integer } _
)

Parameter

  • Title
    String-Ausdruck, der den Titel angibt, der in der Titelleiste der zu aktivierenden Anwendung enthalten ist. Sie können den der Anwendung beim Starten zugewiesenen Titel verwenden.

  • ProcessId
    Integer-Wert, der die Win32-Prozess-ID festlegt, die diesem Prozess zugewiesen wird. Sie können die von Shell-Funktion zurückgegebene ID verwenden, sofern diese nicht den Wert 0 (null) aufweist.

Ausnahmen

Ausnahmetyp

Fehlernummer

Bedingung

ArgumentException

5

Title oder ProcessId wurde nicht gefunden.

Beachten Sie die Spalte "Fehlernummer", wenn Sie Visual Basic 6.0-Anwendungen aktualisieren, die eine unstrukturierte Fehlerbehandlung verwenden. (Sie können die Fehlernummer mit der Number-Eigenschaft (Err-Objekt) vergleichen.) Wenn möglich, sollten Sie jedoch erwägen, eine solche Fehlersteuerung durch eine Übersicht über die strukturierte Ausnahmebehandlung für Visual Basic zu ersetzen.

Hinweise

Sie verwenden AppActivate, um das aktive Fenster einer Anwendung in den Fokus zu bringen. Möglicherweise verfügen Sie über keinen Handle oder Verweis auf das aktive Fenster, oder Ihnen ist nicht bekannt, welches Fenster zum angegebenen Zeitpunkt aktiv ist. In diesem Fall können Sie die Focus-Methode nicht verwenden.

Die AppActivate-Funktion richtet den Fokus auf die genannte Anwendung oder das Fenster, verändert aber nicht dessen Größe. Das aktivierte Anwendungsfenster verliert den Fokus, wenn der Benutzer das Fenster schließt oder den Fokus auf ein anderes Fenster richtet. Mithilfe der Shell-Funktion können Sie eine Anwendung starten und den Fensterstil festlegen.

Wenn Sie den Title-Parameter verwenden, erfolgt mit AppActivate ein Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung. Abgesehen davon ist jedoch eine genaue Übereinstimmung mit dem Inhalt der Titelleiste erforderlich. Zunächst werden die Fenster auf oberster Ebene durchsucht und anschließend die untergeordneten Fenster. Wenn keine Übereinstimmung gefunden werden kann, wird eine ArgumentException ausgelöst.

AppActivate kann nur mit Prozessen verwendet werden, bei denen Fenster verwendet werden. In den meisten Konsolenanwendungen gibt es keine Fenster, d. h., sie werden in der Liste der Prozesse, die AppActivate durchsucht, nicht angezeigt. Bei Ausführung von einer Konsolenanwendung aus erstellt das System einen separaten Prozess, der die Anwendung ausführt, und gibt die Ausgabe an den Konsolenprozess zurück. Wenn Sie die aktuelle Prozess-ID abfragen, erhalten Sie demzufolge die Prozess-ID dieses separaten Prozesses statt der Prozess-ID der Konsolenanwendung.

Zur Laufzeit aktiviert die AppActivate-Funktion jede aktive Anwendung mit einem Titel, der Title entspricht, oder mit einer Prozess-ID, die ProcessId entspricht. Wenn keine genaue Übereinstimmung vorliegt, wird jede Anwendung aktiviert, deren Titelzeichenfolge mit Title endet. Wenn mehrere Anwendungen mit Title benannt sind, wählt die AppActivate-Funktion eine beliebige Anwendung aus und aktiviert diese.

Hinweis:

Die AppActivate-Funktion erfordert eine UIPermission-Berechtigung auf SafeTopLevelWindows-Ebene. Dies kann sich auf die Ausführung der Funktion in teilweise vertrauenswürdigen Situationen auswirken. Weitere Informationen finden Sie unter Anfordern von Berechtigungen und UIPermission-Klasse.

Beispiel

In diesem Beispiel werden verschiedene Einsatzmöglichkeiten der AppActivate-Funktion zum Aktivieren eines Anwendungsfensters veranschaulicht. Wenn kein Editor-Prozess ausgeführt wird, löst das Beispiel eine ArgumentException-Ausnahme aus. Die Shell-Prozedur setzt voraus, dass die Anwendungen unter den angegebenen Pfaden zu finden sind.

Dim notepadID As Integer
' Activate a running Notepad process.
AppActivate("Untitled - Notepad") 
' AppActivate can also use the return value of the Shell function.
' Shell runs a new instance of Notepad.
notepadID = Shell("C:\WINNT\NOTEPAD.EXE", AppWinStyle.NormalFocus)
' Activate the new instance of Notepad.  
AppActivate(notepadID)

Hinweise für Entwickler intelligenter Geräte

Diese Funktion wird nicht unterstützt.

Anforderungen

Namespace:Microsoft.VisualBasic

**Modul:**Interaction

**Assembly:**Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)

Siehe auch

Referenz

Shell-Funktion

Focus

ArgumentException