Ich verwende VB.NET und muss ein bestimmtes Fenster aktivieren. Ist dies möglich? Wenn ja, wie?
Antworten
Zu viele Anzeigen?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.
schlebe
Punkte
2712
Es gibt 2 Lösungen, eine mit Window API und eine andere mit reinem VB.Net
- 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
- 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")