关于Winform调用外部exe,并设置exe初始位置的问题
winform 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);
}
[解决办法]
从Process开始运行,到创建一个窗口,会有一些延迟。
System.Diagnostics.Process p = System.Diagnostics.Process.Start("E:\\form\\form1");
p.WaitForInputIdel(); //<-- 加这行
MoveWindow(p.MainWindowHandle, 800, 500, this.Width, this.Height, true);