私は特定のゲームエンジンのデジタル配信プラットフォームとして使用される小さなプログラムを作成しています。.NETプロセスはクラッシュしますが、エクスプローラから正常に実行されます
このゲームエンジンにはかなり古いバージョンがあり、互換性の問題が発生しているようです。
特定のゲームを実行すると、エクスプローラから直接実行すると正常に動作するように見えますが、プログラム内からプロセスとして実行すると、すぐにクラッシュします。
.NETのプロセスとシェルの違いは何ですか?
HERESに私の現在のコード:
(そのはそれを台無しにされDOSBOXないので、記録のためにエンジンのこのバージョンは、は、DOSBoxをを必要としません。)
if (Status == "Ready")
{
System.Diagnostics.Process Proc = new System.Diagnostics.Process();
if (NeedsDosBox)
{
Proc.StartInfo.FileName = String.Format("{0}\\dosbox.exe", Globals.AppDir);
Proc.StartInfo.Arguments = String.Format("{2}\\{0}\\{1}", GameId, Executable, Globals.Gamecache);
}
else
{
Proc.StartInfo.FileName = String.Format("{2}\\{0}\\{1}", GameId, Executable, Globals.Gamecache);
}
Proc.StartInfo.UseShellExecute = true;
Proc.EnableRaisingEvents = true;
Proc.Exited += new EventHandler(Proc_Exited);
Status = "In Game";
Proc.Start();
}
+1良い点。作業ディレクトリが間違っている可能性があります。 – leppie
うまくいけば、それはそういうものかもしれないと思った。ありがとう – Steve