在Windows 10中的Windows窗体中运行程序

时间:2016-08-04 20:53:59

标签: c# .net

此问题已在Stack Overflow上多次针对早期Windows操作系统得到解答,甚至还有一个视频指南:https://www.youtube.com/watch?v=N6GWgxEvibE

但是,当我在我的简单窗体中实现代码来启动calc.exe时,Calc将从我的窗体外面开始。我创建了一个表单,并使用以下代码添加了一个单击处理程序:

[DllImport("user32.dll")]
    static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

在点击处理程序中:

Process p = Process.Start("calc.exe");
p.WaitForInputIdle();
SetParent(p.MainWindowHandle, this.Handle);

如果我添加此代码:

MessageBox.Show(DateTime.Now.ToLongTimeString());
Process p= Process.Start("calc.exe");
Thread.Sleep(1000);
MessageBox.Show("Process exited at: " + p.ExitTime.ToLongTimeString());

我开始后大约1秒显示一个时间。所以我猜我的过程我开始是一些中介,最终启动Calc.exe并退出。这显然是Windows的新行为,因为此代码用于工作。有人知道如何获得最终的进程,即实际的Calc.exe吗?

0 个答案:

没有答案