C#窗体内嵌外部程序(cmd.exe)的显示

[DllImport("User32.dll ", EntryPoint = "SetParent")]

private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

[DllImport("user32.dll ", EntryPoint = "ShowWindow")]

public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);

private void button3_Click(object sender, EventArgs e)

        {

            Process p = new Process();

            p.StartInfo.FileName = "cmd.exe ";

            p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized;//加上这句效果更好

            p.Start();

            System.Threading.Thread.Sleep(100);//加上,100如果效果没有就继续加大

 

            SetParent(p.MainWindowHandle, panel1.Handle); //panel1.Handle为要显示外部程序的容器

            ShowWindow(p.MainWindowHandle, 3);

        }

posted @ 2012-04-07 10:40  scgw  阅读(559)  评论(0编辑  收藏  举报