类似photoshop这样启动很慢的程序,无法直接抓取到软件的主窗体嵌入到panel控件中,通过Application.Ilde事件实现在被嵌程序加载完毕后才将其窗体嵌入panel控件。
但是实际情况,有时候无法抓取到被嵌程序的主窗体,是不是Application.Ilde事件哪个地方写的不对?还是其它的地方写的有问题?请帮忙修改下,谢谢!
代码如下:
public Form1()
{
InitializeComponent();
Application.Idle += new EventHandler(Open);
}
private void Open(object sender, EventArgs e)
{
Process m_Process = null;
m_Process = new Process();
m_Process.StartInfo.FileName = @"C:\Program Files\Adobe\Adobe Photoshop CS2\Photoshop.exe";
m_Process.Start();
IntPtr ptr = API.SetParent(m_Process.MainWindowHandle, this.panel1);
Application.Idle -= new EventHandler(Open);
}