Private Const GW_HWNDNEXT = 2
Private Declare Function GetWindowThreadProcessId Lib “user32” (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function GetParent Lib “user32” (ByVal hwnd As Long) As Long Private Declare Function FindWindow Lib “user32” Alias “FindWindowA” (ByVal lpClassName As Long, ByVal lpWindowName As Long) As Long
Private Declare Function GetWindow Lib “user32” (ByVal hwnd As Long, ByVal wCmd As Long) As Long Private Declare Function GetWindowText Lib “user32” Alias “GetWindowTextA” (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function SetParent Lib “user32” (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Function InstanceToWnd(ByVal target_pid As Long) As Long
Dim test_hwnd As Long
Dim test_pid As Long
Dim test_thread_id As Long
test_hwnd = FindWindow(ByVal 0&, ByVal 0&)
Do While test_hwnd
If GetParent(test_hwnd) = 0 Then test_thread_id = GetWindowThreadProcessId(test_hwnd, test_pid)
If test_pid = target_pid Then I
nstanceToWnd = test_hwnd
Exit Do
End If
End If
test_hwnd = GetWindow(test_hwnd, GW_HWNDNEXT)
Loop
End Function
Private Sub command1_Click()
Dim pid As Long
pid = Shell(“calc.exe”, vbNormalFocus)
If pid = 0 Then
Exit Sub
End if
Calc_Hwnd& = InstanceToWnd(pid)
Calc_OldParent& = SetParent(Calc_Hwnd&, Me.hwnd)
End Sub
http://hi.baidu.com/liyantsc/blog/item/c8b1af245672b922d507427f.html
http://hi.baidu.com/wfiihicyga/item/89f45844d97f25efbcf4511f
微信赞赏支付宝赞赏