我想要一些提示,以解决这个问题,甚至可以解决我目前遇到的这个小问题。
我已经编写了WPF代码,并且想要将控制台应用程序嵌入其中。我正在做的是首先打开console.exe,一旦在WPF外部打开它,我就尝试将其嵌入到WPF应用程序中。
如果我将应用程序嵌入如下所示的按钮单击中,则上述方案绝对可以正常工作
要打开控制台应用程序
string exe = @"cmd.exe";
var processStartInfo = new System.Diagnostics.ProcessStartInfo(exe);
processStartInfo.WorkingDirectory = System.IO.Path.GetDirectoryName(exe);
cmdProcess = Process.Start(processStartInfo);
然后将其嵌入到WPF应用程序中:
(注意:每当我在按钮上运行下面的代码时,它都可以正常运行,但是我希望它在 InitializeComponent()方法之后的窗体上加载时运行)
System.Windows.Forms.Panel panel = new System.Windows.Forms.Panel();
Win32API.SetParent(cmdProcess.MainWindowHandle, panel.Handle);
winFormsHost.Child = panel;
上面的代码在单击按钮时可以正常工作。但是,我不想单击该按钮将其嵌入到我的WPF应用程序中,我想直接加载WPF应用程序并将其控制台应用程序嵌入其中,而无需手动执行任何操作。
我该如何实现?
答案 0 :(得分:1)
您可以将代码添加到方法中,并在Window加载后调用该方法。 见下文:
public MainWindow()
{
InitializeComponent();
Loaded += (s, e) => LoadConsole();
}
private void LoadConsole()
{
//Your code goes here
}