我使用的是VB.NET,需要激活某个窗口。这可能吗?如果是这样,怎么样?
答案 0 :(得分:4)
您需要使用Win32 API来执行此操作。
首先,通过调用FindWindow获取其句柄,找到您想要显示的窗口,然后使用SetForegroundWindow API将其置于前台。
PInvoke包含这些方法的声明。
答案 1 :(得分:0)
有2种解决方案,一种使用Window API,另一种使用纯VB.Net
SetForegroundWindow(iHandle)
使用FindWindow获取窗口句柄的示例
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
AppActivate(iProcessId)
使用GetActiveAppProcess()的示例在挂钩程序中获取输入窗口活动进程
Dim hWnd As IntPtr
Dim inputProcess = GetActiveAppProcess()
hWnd = GetActiveAppProcess().MainWindowHandle
AppActivate(inputProcess.Id)
'you can also use SetForegroundWindow
'SetForegroundWindow(inputProcess..MainWindowHandle)
SendKeys.Send("^v")