1,486
社区成员
发帖
与我相关
我的任务
分享
Dim pid
Private Sub Form_Load()
Dim WmiService As Object, Processes As Object, Process As Object
Set WmiService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set Processes = WmiService.ExecQuery("SELECT * FROM Win32_Process WHERE Name = ""notepad.exe""")
For Each Process In Processes
pid = Process.ProcessId
Next
Set WmiService = Nothing
Set Processes = Nothing
Set Process = Nothing
MsgBox pid2whwnd(pid)
End Sub
Function pid2whwnd(pid2)
Dim hwnd2, pid3
hwnd2 = 0
Do
hwnd2 = FindWindowEx(0, hwnd2, 0, 0) 'FindWindowEx的返回值总是0
GetWindowThreadProcessId hwnd2, pid3
If pid2 = pid3 Then
pid2whwnd = hwnd2
hwnd2 = 0
End If
Loop Until hwnd2 = 0
End Function
hwnd2 = FindWindowEx(0, hwnd2, 0, 0) 'FindWindowEx的返回值总是0