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

赞赏

微信赞赏支付宝赞赏

「赏不在多,觉得文章有用,就赞赏下吧!」

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据