J'écris un petit programme qui doit être utilisé comme plate-forme de distribution numérique pour un moteur de jeu spécifique..NET Le processus se bloque mais s'exécute correctement depuis l'explorateur
Ce moteur de jeu a des versions qui sont assez anciennes et cela semble causer quelques problèmes de compatibilité.
Exécuter un jeu particulier semble fonctionner correctement si je l'exécute directement à partir de l'explorateur (c'est-à-dire en cliquant sur l'exe) mais si je l'exécute en tant que processus depuis mon programme, il se bloque immédiatement.
Alors, quelle est la différence entre un processus dans .NET et juste l'exécuter à partir du shell?
Heres mon code actuel:
(. Pour mémoire cette version du moteur ne pas besoin DOSBox, de sorte que son non DOSBox qui merdait)
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 Bon point. Le répertoire de travail est probablement incorrect. – leppie
Oui, ça a marché, j'ai pensé que ça pourrait être quelque chose comme ça. Merci – Steve