Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 如何在没有弹出新窗口的情况下打开程序?_C# 4.0 - Fatal编程技术网

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

C# 4.0 如何在没有弹出新窗口的情况下打开程序?,c#-4.0,C# 4.0,我试着用C#来制作某种形式的前端。这个前端将处理一些引擎文件,这些文件都是文本文件。文本部分的效果很好,但我正在尝试其他一些我不知道是否可行的东西 我希望前端执行engine.exe文件,但这将出现在当前窗口中,而不是出现在新窗口中。有办法做到这一点吗 我尝试了StartInfo.“something”,但它似乎只适用于CMD,或者我没有成功使用它(每次都会弹出窗口) 如果有人能帮我,我会很高兴的。谢谢您的建议。我想您想在当前窗口中嵌入新的程序窗口吗 可以通过将该程序重写为ActiveX控件来完

我试着用C#来制作某种形式的前端。这个前端将处理一些引擎文件,这些文件都是文本文件。文本部分的效果很好,但我正在尝试其他一些我不知道是否可行的东西

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

我尝试了StartInfo.“something”,但它似乎只适用于CMD,或者我没有成功使用它(每次都会弹出窗口)


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

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

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

获取windows句柄的C代码:

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

这是相关的:请也检查对不起,这不是我的意思。我真正想要的是在当前窗口中打开一个新程序(file.exe),而不弹出新程序。当前=[]]前端调用.exe,它弹出前端窗口My goal=[[]]前端调用.exe,它在同一窗口中启动。无论如何这可能吗?我知道这是一个更复杂的情况,但有些类似于NRS对致命的Kombat Kollection所做的事情。但是我只想用一个.exe(一个用其他语言编写的引擎)就可以了,只要在同一个窗口中运行就行了。对不起,如果我问得太多了,你能给我举个更好的例子吗?我以前从未使用过这种功能。请看一下@Luke Quinaneat在这篇帖子中的回复:很抱歉打扰你们这么多。这让我得到了一个很棒的教程,非常感谢。如果我成功了,我最终会在这里发帖。很遗憾,我还没有找到解决办法。这似乎是不可能的,只有使用一些windows.exe(如notpad和IE)。无论如何,谢谢你们。我正在尝试使用SetParent,但XNA项目似乎没有使用System.Windows命名空间。有什么提示吗?
Window window = Window.GetWindow(this);
var winh = new WindowInteropHelper(window);
IntPtr hWnd = winh.Handle;