日期:2014-05-17  浏览次数:20843 次

关于Winform调用外部exe,并设置exe初始位置的问题


[DllImport("User32.dll", EntryPoint = "FindWindow")]
        public extern static IntPtr FindWindow(string lpClassName, string lpWindowName);
        [DllImport("user32.dll", SetLastError = true)]
        private static extern bool MoveWindow(IntPtr hwnd, int x, int y, int cx, int cy, bool repaint);
        private void button1_Click(object sender, EventArgs e)
        {
            System.Diagnostics.Process p = System.Diagnostics.Process.Start("E:\\form\\form1");
           
           

            MoveWindow(p.MainWindowHandle, 800, 500, this.Width, this.Height, true); 
        }



winform exe

------解决方案--------------------
从Process开始运行,到创建一个窗口,会有一些延迟。

System.Diagnostics.Process p = System.Diagnostics.Process.Start("E:\\form\\form1");
p.WaitForInputIdel();   //<-- 加这行
MoveWindow(p.MainWindowHandle, 800, 500, this.Width, this.Height, true);