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

时间:2011-11-02 17:48:52

标签: c# xna process.start

所以,我最近开始尝试使用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版,如果它有意义的话。

如果有人理解这有什么问题,我们将非常感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。我找到了这个帖子:

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

在底部附近,Kezip说“ XNA不允许多个程序在全屏显示时运行。”将两个程序都移出全屏模式可以解决问题。

答案 1 :(得分:0)

你无法使用

process.StartInfo.RedirectStandardOutput = true;

使用XNA应用程序。

为什么呢? XNA应用程序将尝试以这种方式在其他XNA Process中创建图形设备,这将100%失败。

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

编辑:

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

process.StartInfo.WorkingDirectory = Stat.clientfile.Substring(0, Stat.clientfile.LastIndexOf('\\'));