Fenster in Vordergrund bringen anhand des Namen

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Bii.

    Fenster in Vordergrund bringen anhand des Namen

    Also ich möchter gerne ein Fenster anhand des namen in den vordergrund bringen das klappt auch so aber wenn das fenstern nicht aktiv ist geht das ganze nicht.

    weiß jemand vllt wie ich das fenster aktivieren kann und in den vordergrund bringen kann wenn es nicht aktiv ist?

    mein code

    VB.NET-Quellcode

    1. Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As IntPtr) As Integer
    2. Private Declare Function GetForegroundWindow Lib "user32" () As Integer
    3. Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As IntPtr, ByRef lpdwProcessId As Integer) As Integer
    4. Private Const WM_SETFOCUS As Int32 = &H7
    5. Private Function SetForegroundWindowEx(ByVal hWndWindow As Long) As Boolean
    6. Dim lThreadForeWin As Long
    7. Dim lThreadWindow As Long
    8. lThreadWindow = GetWindowThreadProcessId(CType(hWndWindow, IntPtr), 0)
    9. lThreadForeWin = GetWindowThreadProcessId(CType(GetForegroundWindow(), IntPtr), 0)
    10. If lThreadWindow = lThreadForeWin Then
    11. SetForegroundWindowEx = CBool(SetForegroundWindow(CType(hWndWindow, IntPtr)))
    12. Else
    13. SetForegroundWindowEx = CBool(SetForegroundWindow(CType(hWndWindow, IntPtr)))
    14. End If
    15. End Function
    16. Private Sub btnShow_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnShow.Click
    17. Dim Process As Process = Process.GetProcessesByName("PROGRAMM")(0)
    18. If Process.MainWindowTitle.Contains("NAME") Then
    19. SetForegroundWindowEx(CLng(Process.MainWindowHandle))
    20. Else
    21. ' fenster mit dem namen in vordergrund bringen
    22. End If
    23. End Sub


    vielen dank