我正在尝试使用C#来制作某种前端。这个前端将处理一些引擎文件,这些文件都是文本文件。文本部分进展顺利,但我正在尝试其他一些我不知道是否可能的东西。
我希望前端执行引擎 .exe 文件,但这将出现在当前窗口中,而不是在新窗口中弹出。有没有办法做到这一点?
我试过StartInfo."something"但它似乎只适用于CMD或者我没有任何成功(每次都会弹出窗口)。
如果有人能帮我解决这个问题,我会很高兴。谢谢指教。
我正在尝试使用C#来制作某种前端。这个前端将处理一些引擎文件,这些文件都是文本文件。文本部分进展顺利,但我正在尝试其他一些我不知道是否可能的东西。
我希望前端执行引擎 .exe 文件,但这将出现在当前窗口中,而不是在新窗口中弹出。有没有办法做到这一点?
我试过StartInfo."something"但它似乎只适用于CMD或者我没有任何成功(每次都会弹出窗口)。
如果有人能帮我解决这个问题,我会很高兴。谢谢指教。
我想您想在当前窗口中嵌入新的程序窗口?
可以通过将该程序重写为 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;