在C#中以窗口模式启动新进程

5

我的C#应用程序启动了一个控制台应用程序的进程。

进程已经正确启动并在任务管理器中可见,但是该进程没有窗口。

我该如何运行一个带有自己窗口的控制台应用程序?

我的代码:

 p_info.UseShellExecute = true;
 p_info.CreateNoWindow = false;
 p_info.WindowStyle = ProcessWindowStyle.Normal;
 Process.Start(p_info);

你尝试过调整UseShellExecute和其他属性吗? - Alvin Wong
简单的解释是它不是控制台模式应用程序。使用dumpbin.exe /headers并查看报告的“子系统”。它必须说“Windows CUI”(注意C,而不是G)才能使它成为控制台应用程序。Java应用程序可能会出现问题。 - Hans Passant
1个回答

9

这是一个示例,用于从另一个应用程序启动可见的控制台应用程序

var p_info = new ProcessStartInfo
{
    UseShellExecute = true,
    CreateNoWindow = false,
    WindowStyle = ProcessWindowStyle.Normal,
    FileName = @"archi\ConsoleApplicationtest\ConsoleApplicationtest\bin\Debug\ConsoleApplicationtest.exe"
};
Process.Start(p_info); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接