c#在win窗体中启动控制台应用程序

c#在win窗体中启动控制台应用程序,c#,winforms,C#,Winforms,我正在尝试为我的游戏制作启动器,我喜欢在后台添加音乐播放器,但如果我启动这个过程,它会立即失败 代码 private void btnStartMusic_Click(object sender, EventArgs e) { ProcessStartInfo proc = new ProcessStartInfo("MusicPlayer\\MemequickieMusicPlayer.exe"); proc.CreateNoWindow = true; pr

我正在尝试为我的游戏制作启动器,我喜欢在后台添加音乐播放器,但如果我启动这个过程,它会立即失败

代码

private void btnStartMusic_Click(object sender, EventArgs e)
{
    ProcessStartInfo proc = new 
    ProcessStartInfo("MusicPlayer\\MemequickieMusicPlayer.exe");
    proc.CreateNoWindow = true;
    proc.WindowStyle = ProcessWindowStyle.Hidden;
    proc.RedirectStandardError = false;
    proc.RedirectStandardInput = false;
    proc.RedirectStandardOutput = false;
    proc.UseShellExecute = false;
    Process.Start(proc);
}

感谢您的帮助。

尝试使用exe的完整路径并设置工作目录;假设exe在可执行文件夹中:

string path = Path.Combine(Application.StartupPath, "MusicPlayer");

ProcessStartInfo proc = new 
    ProcessStartInfo(Path.Combine(path, "MemequickieMusicPlayer.exe")); 

proc.WorkingDirectory = path;
如果错误仍然存在,并且要调试输出,请更改:

proc.RedirectStandardOutput = true;
创建如下过程:

Process process = new Process(proc);
process.Start();

while (!process.StandardOutput.EndOfStream) {
    System.Diagnostics.Debug.Write(process.StandardOutput.ReadLine());
}

您现在应该可以在输出窗口中看到输出。

尝试使用exe的完整路径并设置工作目录;假设exe在可执行文件夹中:

string path = Path.Combine(Application.StartupPath, "MusicPlayer");

ProcessStartInfo proc = new 
    ProcessStartInfo(Path.Combine(path, "MemequickieMusicPlayer.exe")); 

proc.WorkingDirectory = path;
如果错误仍然存在,并且要调试输出,请更改:

proc.RedirectStandardOutput = true;
创建如下过程:

Process process = new Process(proc);
process.Start();

while (!process.StandardOutput.EndOfStream) {
    System.Diagnostics.Debug.Write(process.StandardOutput.ReadLine());
}

您现在应该可以在输出窗口中看到输出。

询问您是否缺少一些信息。是否要共享错误消息?它立即存在,因此我看不到错误消息。请尝试从控制台运行应用程序。你的MemequickieMusicLayer.exe是否在你的bin文件夹中?询问你是否缺少一些信息。是否要共享错误消息?它立即存在,因此我看不到错误消息。请尝试从控制台运行你的应用程序。你的MemequickieMusicPlayer.exe是否在你的bin文件夹中?我的做法略有不同,但我将其用作参考。谢谢你的帮助。我做了一些不同的事情,但我用这个作为参考。谢谢你的帮助。