4

所以,我最近开始尝试使用一个 XNA 程序来启动另一个 XNA 程序。我一直在使用“Process.Start”的普通方法,在打开 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)我能想到的几乎所有添加之后。如果这意味着什么,我正在 Acer 上网本上运行 XNA 3.1 版。

如果有人理解这有什么问题,我们将不胜感激您的帮助!

4

2 回答 2

2

我遇到了同样的问题。我找到了这个线程:

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

在底部附近,Kezip 说“ XNA 不允许多个程序在一个全屏时运行。” 将两个程序都退出全屏模式解决了这个问题。

于 2011-12-23T18:03:22.657 回答
0

你不能用

process.StartInfo.RedirectStandardOutput = true;

与 XNA 应用程序。

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

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

编辑:

顺便说一句,你最好用它来构建你的 WorkingDirectory

process.StartInfo.WorkingDirectory = Stat.clientfile.Substring(0, Stat.clientfile.LastIndexOf('\\'));
于 2011-11-23T08:47:05.643 回答