Bonjour à tous et à toutes.
Entrons dans le vif du sujet, une bonne connaissance du fonctionnement des processus windows est requise.
Le but final est de créer une application (Launcher) qui va permettre de choisir entre plusieurs autres applications .exe, lancées via la classe System.Diagnostics.Process. Cependant, là ou ça se complique, c'est que mon Launcher doit rester en plein écran un certain temps avant de montrer l'application afin de contrer le chargement. Il faut donc lancer une application, en restant en plein écran, attendre un certain temps et ensuite pouvoir afficher l'application.
pour être plus clair je veux :
Affichage du menu - Cliquer sur un bouton pour lancer une appli - Lancer l'appli en arrière plan le temps qu'elle charge - Attendre un temps prédéfini - Afficher l'appli et cacher le Launcher.
C'est donc la dernière partie qui me fait défaut. J'ai fait beaucoup de recherches et beaucoup d'essais notamment avec la fonction ShowWindow qui n'a absolument aucun effet sur mon process.
Voila la fonction qui lance l'application. Et ça fonctionne hormis la fonction ShowWindow...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| [DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern bool ShowWindow(System.IntPtr hWnd, uint nCmdShow);
private int LoadScene(string path) {
try {
Screen.SetResolution((int)_Resolution.x,(int)_Resolution.y,false);
ProcessStartInfo procinfo = new ProcessStartInfo(path);
//procinfo.WindowStyle = ProcessWindowStyle.Minimized;
proc = Process.Start(procinfo);
//proc.WaitForInputIdle();
ShowWindow(proc.Handle, 0);
Screen.SetResolution((int)_Resolution.x, (int)_Resolution.y, true);
return 0;
} catch (System.Exception) {
return -1;
} |
La première étape est donc que l'appli se lance en "caché".
Petit compte rendu de mes expériences :
Launcher en plein écran : Conflits de résolution :
couldn't switch to requested monitor resolution
Launcher en mode fenêtre : L'appli se lance directement sans attendre.
si quelqu'un à une idée de comment faire ou une demande de précision ou de code, qu'il n'hésite pas.
Partager