1
  1. 我想使用 c# 代码在面板内的 winform .net 应用程序上运行 exe 文件
  2. 我可以在单击按钮上运行 exe 文件,System.Diagnostics.ProcessStartInfo但是Process p = Process.Start("notepad.exe"); 使用 c# 代码在面板中运行此记事本文件或任何其他 exe 文件的代码是什么?
  3. 我想在面板中而不是在单独的窗口上运行应用程序。我已经运行了以下代码,但 exe 没有留在屏幕上,也没有在面板中打开,请告诉我解决方案。

        Process p = Process.Start("notepad.exe");
        Thread.Sleep (600);  // Allow the process to open it's window 
        SetParent(p.MainWindowHandle, panel1.Handle);
    
    
    [DllImport("user32.dll")]
    static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
    
4

4 回答 4

3

我认为您在谈论的是在您的面板中嵌入一个应用程序。

这仅适用于已创建嵌入的可执行文件。记事本不是其中之一。有些浏览器可以——Mozilla是一个例子,IE是另一个例子。

于 2010-01-29T08:50:23.060 回答
2

我猜你正在寻找这个:Window Tabifier

于 2010-01-29T08:52:09.677 回答
0

你想做什么?您知道,如果您想在面板中运行您自己的程序,您可以编写一些基本的插件代码并从带有反射的程序集中获取控件..

于 2010-01-29T09:14:06.813 回答
0

您想要的是将 exe 的输出通过管道传输到您的进程。通常,当您不使用管道输出时,它默认为控制台应用程序的标准输出将是控制台窗口,通过管道您告诉 exe 您希望输出到您的进程而不是控制台窗口。然后,您必须创建自己的“面板”(多行文本框)并将您调用的 exe 的输出流附加到它!

在这里学习:http: //msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardoutput (v=VS.90).aspx

于 2011-07-06T01:23:44.713 回答