VB 让外部程序在VB程序的窗体里面运行
Option Explicit Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Long,ByVal lpWindowName As Long) As Long Private Const GW_HWNDNEXT = 2 Private Sub Form_Load() Dim dblPid As Long Call LockWindowUpdate(GetDesktopWindow) dblPid = Shell("c:windowsnotepad.exe",vbNormalFocus) m_Hwnd = InstanceToWnd(dblPid) '根据进程PID找窗口句柄 SetParent m_Hwnd,Me.hwnd Putfocus m_Hwnd '记事本设置焦点 Call LockWindowUpdate(0) End Sub Function InstanceToWnd(ByVal target_pid As Long) As Long Dim i As Long,lHwnd As Long,lPid As Long,lThreadId As Long lHwnd = FindWindow(ByVal 0&,ByVal 0&) '查找第一个窗口 Do While lHwnd <> 0 i = i + 1 If i Mod 20 = 0 Then DoEvents '判断窗口是否没父窗口 '获取该窗口的线程ID If lPid = target_pid Then '找到PID所在窗口句柄 InstanceToWnd = lHwnd End If End If '继续查找下一个兄弟窗口 Debug.Print Hex$(lHwnd) Loop End Function Private Sub Form_Unload(Cancel As Integer) Call DestroyWindow(m_Hwnd) End Sub (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |