如何用另一个c#程序启动XNA游戏

本文关键字:启动 XNA 游戏 程序 何用 另一个 | 更新日期: 2023-09-27 18:13:03

所以,我最近开始尝试使用一个XNA程序来启动另一个XNA程序。我一直在用正常的"过程"方法。"开始",在打开Firefox或Media Player时可以正常工作。然而,每当我尝试启动任何XNA程序(我已经尝试了几个),我得到错误"没有找到合适的显卡。无法创建图形设备。这个程序需要1.1像素着色器和1.1顶点着色器。我认为这是图形设备无法处理XNA时的错误,但这不是这里的问题,因为我已经开始运行XNA了。

我的代码现在看起来像这样:

System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = Stat.clientfile;
process.StartInfo.Arguments = "";
process.StartInfo.LoadUserProfile = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.WorkingDirectory = Stat.clientfile.Remove(Stat.clientfile.Length - 1 - Stat.clientfile.Split(Convert.ToChar(@"'"))[Stat.clientfile.Split(Convert.ToChar(@"'")).Length - 1].Length);
process.StartInfo.RedirectStandardOutput = true;
Stat.MessageBox(process.StartInfo.WorkingDirectory);
process.Start();

但这是在尝试了几乎所有我能想到的Process.Start(filename)的加法之后。我在宏碁上网本上运行XNA 3.1版本,如果这意味着什么。

如果有人知道这是怎么回事,你的帮助将是非常感激的!

如何用另一个c#程序启动XNA游戏

我也遇到了同样的问题。我发现了这个线程:

http://forums.create.msdn.com/forums/p/94466/566353.aspx

在底部附近,Kezip说"XNA不允许在一个全屏时运行多个程序。"把这两个程序都退出全屏模式可以修复这个问题

不能用

process.StartInfo.RedirectStandardOutput = true;

与XNA应用程序。

为什么?XNA应用程序将尝试以这种方式在另一个XNA进程中创建图形设备,这将100%失败。

不要重定向输出,它将工作。(在XNA 4.0的2个测试场景中为我工作-如果这与3.1相同,我不能说100%)

编辑:

顺便说一下,你最好使用这个来构建你的工作目录
process.StartInfo.WorkingDirectory = Stat.clientfile.Substring(0, Stat.clientfile.LastIndexOf(''''));