Bonjour,
Je vais vous exposer ce que je souhaite faire et vous comprendrez mieux.
Mon but est de faire des opérations de maintenance sur des postes windows dans un par informatique.
Les opérations seront :
- Installation de logiciels
- Paramétrages divers
- Copies de fichiers
- Récupérations de données
Les contraintes sont des systèmes annexes comme "Windows Unattended" ou "wpkg". ils permettent de faire des installations auto de Windows et de logiciels.
J'ai donc souhaité avoir un maximum de souplesse et donc je souhaite garder des exécutables indépendants et utilisables selon mon besoin à l'instant T.
Donc dans le cas présent, je souhaite avoir un écran d'attente qui prend tout l'affichage et qui bloque les contrôles utilisateurs. Et donc pendant ce temps et donc en arrière plan, je fait un grand nombre de choses que je ne souhaite pas que les utilisateurs voient ou même bloquent avec des clics ou des touches clavier.
Je ne souhaite PAS dupliquer le code dans chaque exécutable afin de garder un bon contrôle, simplifier le code et viser la pérennité.
J'ai donc fait un fichier "SplashScreen.exe" qui affiche un écran d'attente et qui bloque les contrôles. Ainsi je peux quand je le veux bloquer ou débloquer l'écran et ce depuis des scripts séquencés et automatisés !
J'ai donc fait 2 paramètres au programme, un "--start" et un "--stop".
- Le START lance une instance du SplashScreen uniquement s'il en existe pas déjà une.
- Le STOP tue tous les processus de SlpashScreen existant.
Voila simplement.
Le soucis donc vient que dans mes séquencements de commandes (dont je ne contrôle pas le mode d'exécution), quand j'éxécute la commande
Alors l'instruction qui suivra ne sera exécutée que quand le processus se terminera. Donc jamais (enfin 60 minutes dans la réalité car j'ai mis un TIMER).
PS : Dans l'exemple envoyé, le TIMER est à 30 secondes afin de simplifier les tests !
Je souhaiterais que le "SplashScreen.exe --start" ne soit pas bloquant et qu'il soit lancé en arrière plan.
Le problème étant que je ne peut pas car c'est gèré dans les scripts que je ne maîtrise pas !
Donc j'ai besoin d'un système qui lance le SplashScreen.exe et qui rend la main.
C'est donc ici que j'ai créé "ScriptLauncher.exe" qui lui sait UNIQUEMENT faire un run() d'une commande. Ainsi il lance mon SplashScreen en processus distinc sans attentre la fin, et rend la main.
Donc dans ce cas, mes commandes en arrière plan se font correctement !!!
Mon objectif ici est uniquement de supprimer ce fameux "ScriptLauncher.exe" que je trouve étant superflux si on peut faire autrement.
Donc en fait c'est vraiment de la curiosité et du confort ! lol
En espérant avoir été vraiment clair !
PS : Si je m'étends pas toujours sur les forums c'est que c'est pas si courant de trouver des gens qui ont vraiment à coeur d'aider les autres et qui en prennent le temps, et que bien souvent sur les forums (pas ici) un long message signifie pas de réponse et donc du temps pour rien ! Donc au passage ENCORE MERCI pour l'aide et l'esprit qui règne ici !!!