我很难带一个窗口焦点。所有示例都使用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不会将窗户带到前景
这是我的代码:
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