如何实现把其他程序的显示窗口合并到bcb开发的程序窗口中(如panel中) - C++ Builder / Windows SDK/API
如何实现把其他程序的显示窗口合并到bcb开发的程序窗口中(如panel中)
[解决办法]
等待进程启动完毕可以试试用WaitForInputIdle方法,MSDN里这么说的。
[解决办法]
procedure TForm1.Button1Click(Sender: TObject);var H1,H2: Hwnd;begin // 先執行要放入專案的外部EXE檔案(用隱藏方式來執行) WinExec('C:\Program Files\TOOLS\MYIE\MyIE.exe',SW_HIDE); // 再找到該外部EXE檔案 H1 := FindWindow(nil,PChar('MyIE')); // 假設找到執行之程式後要放在 Panel1 H2 := Panel1.Handle; // 將外部程式放在 Panel1 Windows.SetParent(H1,H2); // 設定外部程式顯示的位置及大小 // MoveWindow(hWnd,X,Y,W,H,B) : RETURN BOOL // hWnd: HWND // X:Integer; {horizontal} // Y:Integer; {vertical} // W:Integer; {the new window width} // H:Integer; {the new window height} // B:BOOL; {the repaint flag} MoveWindow(H1,0,0,Panel1.Width,Panel1.Height,True); // Windows.ShowWindow(H1,SW_ShowNormal);end;
[解决办法]
程序中安装钩子 WH_CBT ,如果属于你需要的窗口,调用SetParent函数。