2011-11-02 56 views
4

因此,我最近開始嘗試使用XNA程序啓動另一個XNA程序。 我一直在使用「Process.Start」的正常方法,在打開Firefox或Media Player時工作正常。但是,無論何時我嘗試啓動任何XNA程序(我嘗試了幾次),我都會收到錯誤「找不到合適的圖形卡,無法創建圖形設備,該程序需要像素着色器1.1和頂點着色器1.1。 我認爲這是圖形設備無法處理XNA時的錯誤,但這不是問題,因爲我已經在運行XNA了。如何用另一個C#程序啓動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 Netbook上運行XNA 3.1,如果它意味着什麼的話。

如果有人明白這有什麼問題,您的幫助將不勝感激!

+0

我假設你剛纔試過運行你指向這個的exe文件,而且運行正常嗎? –

+2

隨機猜測:您打電話給的XNA程序已經「接管」了計算機上的圖形卡,並且不想共享。您可以在程序#1運行時手動啓動程序#2嗎? – thedaian

+1

是的,我可以在第一個程序仍在運行時手動啓動第二個程序。我在想XNA不想分享的同一件事,但如果是這樣的話,我不知道該怎麼做。 – Kezip

回答

2

我遇到了同樣的問題。我發現這個線程:

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

接近底部,Kezip說:「XNA並沒有允許多個程序運行,而一個在全屏幕。」將這兩個程序從全屏模式中解決問題。

+0

嘿傢伙,對不起,我還沒有回到這個。喬是對的;那實際上是我寫這篇文章的同時在那裏做的一個話題。我必須欺騙系統並使用Windows.Form的全屏而不是XNA。感謝您的回覆,我希望這也能幫助其他人。 – Kezip

0

你不能使用

process.StartInfo.RedirectStandardOutput = true; 

與XNA應用。

爲什麼? XNA應用程序將嘗試以這種方式創建INSIDE另一個XNA Process的圖形設備,這將100%失敗。

不重定向輸出,它會工作。 (爲我工作在2個測試szenarios與XNA 4.0 - 不能說100%,如果這是在3.1相同)

編輯:

順便說一句,你最好使用它來建立你的WorkingDirectory

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