我无法将窗口聚焦。所有示例都显示使用FindWindow函数并调用SetForegroundWindow,但这不起作用。 这是代码的样子
thandle = FindWindow(Nothing, "title of window")
SetForegroundWindow(thandle)
然后我尝试了ShowWindow函数。如果窗口最小化,并且如果窗口未最大化但是如果窗口已经最大化则拒绝将焦点带到窗口,则下面的代码可以工作。
If IsIconic(thandle) Then
ShowWindow(thandle, 9)
Else
ShowWindow(thandle, 3)
然后我想出了如果窗口没有最小化,最小化然后最大化它的工作。
If IsIconic(thandle) Then
ShowWindow(thandle, 9)
Else
ShowWindow(thandle, 7)
ShowWindow(thandle, 9)
End If
我真的很想知道为什么SetForegroundWindow没有把窗口带到前台
答案 0 :(得分:0)
这是我的代码:
Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As IntPtr) As Long
Private Declare Auto Function FindWindow Lib "USER32.DLL" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As IntPtr
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim thandle = FindWindow(Nothing, "Calculator")
SetForegroundWindow(thandle)
End Sub