如何在没有弹出新窗口的情况下打开程序?

时间:2013-05-29 17:50:16

标签: c#-4.0

我正在尝试使用 C#来制作某种端口。这个前端将操作一些引擎文件,这些文件都是文本文件。这对文本部分来说还不错,但我正在尝试其他一些我不知道是否可能的事情。

我希望前端执行引擎.exe文件,但这会出现在当前窗口中,而不是弹出一个新窗口。有没有办法做到这一点?

我尝试了 StartInfo。“有些东西”但它似乎仅适用于 CMD ,或者我没有取得任何成功(每个单独的窗口弹出)时间)。

如果有人能帮助我,我会很高兴的。谢谢你的建议。

1 个答案:

答案 0 :(得分:0)

我想你想在你当前的窗口中嵌入新的程序窗口?

可以通过将该程序重写为ActiveX控件来完成。或者您可以在engine.exe中使用win api SetParent将主窗口框架设置为父窗口(您需要找到将父窗口句柄传递给engine.exe的方法):

SetParent(hWnd, hWndParent);

SetWindowLong(hWnd, GWL_STYLE, WS_CHILD);

SetWindowPos(hWnd, NULL, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOZORDER);

// or use MoveWindow

获取Windows句柄的C#代码:

Window window = Window.GetWindow(this);
var winh = new WindowInteropHelper(window);
IntPtr hWnd = winh.Handle;