-1

我正在尝试使用C#来制作某种前端。这个前端将处理一些引擎文件,这些文件都是文本文件。文本部分进展顺利,但我正在尝试其他一些我不知道是否可能的东西。

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

我试过StartInfo."something"但它似乎只适用于CMD或者我没有任何成功(每次都会弹出窗口)。

如果有人能帮我解决这个问题,我会很高兴。谢谢指教。

4

1 回答 1

0

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

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

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;
于 2013-05-29T23:23:16.190 回答