2 Stimmen

Fokus auf ein anderes Fenster in VB.NET ändern

Ich verwende VB.NET und muss ein bestimmtes Fenster aktivieren. Ist dies möglich? Wenn ja, wie?

5voto

Mitch Wheat Punkte 287474

Dazu müssen Sie die Win32-API verwenden.

Suchen Sie zunächst das Fenster, das Sie in den Vordergrund bringen möchten, indem Sie FindWindow um sein Handle zu erhalten, und verwenden Sie dann SetForegroundWindow API, um sie in den Vordergrund zu rücken.

PInvoke enthält Deklarationen für diese Methoden.

0voto

schlebe Punkte 2712

Es gibt 2 Lösungen, eine mit Window API und eine andere mit reinem VB.Net

  1. können Sie SetForegroundWindow(iHandle)

Beispiel mit FindWindow, um das Fenster-Handle zu erhalten

Public Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hwnd As Integer) As Integer
Public Declare Auto Function FindWindow Lib "user32.dll" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer

Dim hWnd As Integer
hWnd = FindWindow(strClassName, strWindowCaption)

If hWnd > 0 Then
    SetForegroundWindow(hWnd)
End If
  1. können Sie AppActivate(iProcessId)

Beispiel mit GetActiveAppProcess(), um den Input Window active process in einem Hook-Programm zu erhalten

    Dim hWnd As IntPtr
    Dim inputProcess = GetActiveAppProcess()

    hWnd = GetActiveAppProcess().MainWindowHandle
    AppActivate(inputProcess.Id)

    'you can also use SetForegroundWindow
    'SetForegroundWindow(inputProcess..MainWindowHandle)

    SendKeys.Send("^v")

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X