我正在尝试使用 C#来制作某种端口。这个前端将操作一些引擎文件,这些文件都是文本文件。这对文本部分来说还不错,但我正在尝试其他一些我不知道是否可能的事情。
我希望前端执行引擎.exe文件,但这会出现在当前窗口中,而不是弹出一个新窗口。有没有办法做到这一点?
我尝试了 StartInfo。“有些东西”但它似乎仅适用于 CMD ,或者我没有取得任何成功(每个单独的窗口弹出)时间)。
如果有人能帮助我,我会很高兴的。谢谢你的建议。
答案 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;