[R] Programme asynchrone
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
JamesPatageule
- Niveau 3

- Messages : 36
- Enregistré le : mar. 21 avr. 2009 11:47
- Status : Hors ligne
[R] Programme asynchrone
Bonjour,
J'ai une question très simple sous autoit.
Je cherche à exécuter un script en asynchrone. Le but étant que ce script tourne en tâche de fond et soit totalement détaché du processus père qui l'a invoqué.
J'aimerais que cela soit possible soit
- par un script annexe qui ne fait que lancer le script voulu et qui s'en détache.
- par le script qui est capable de faire ça lui même.
Le comportement devrait être le même que la commande "call" en batch ou que le "&" en bash.
Je souhaite par contre que le processus fils reste en vie, même après la mort du processus père !
Merci d'avance.
J'ai une question très simple sous autoit.
Je cherche à exécuter un script en asynchrone. Le but étant que ce script tourne en tâche de fond et soit totalement détaché du processus père qui l'a invoqué.
J'aimerais que cela soit possible soit
- par un script annexe qui ne fait que lancer le script voulu et qui s'en détache.
- par le script qui est capable de faire ça lui même.
Le comportement devrait être le même que la commande "call" en batch ou que le "&" en bash.
Je souhaite par contre que le processus fils reste en vie, même après la mort du processus père !
Merci d'avance.
Modifié en dernier par JamesPatageule le sam. 05 juin 2010 00:23, modifié 1 fois.
-
GaRydelaMer
- Niveau 7

- Messages : 450
- Enregistré le : mer. 18 mars 2009 22:12
- Localisation : Montpellier
- Status : Hors ligne
Re: [..] Programme asynchrone
Bonjour
Soit Prog1.exe, Prog2.exe, 2 scripts AutoIt
Dans Prog1.exe, simplement: Run("Prog2.exe") suffit.
Voir la doc de la commande Run pour plus de paramètres, le dossier de travail pour prog2, la vue (Invisible, Minimiser, Maximiser).
De plus la commande renvoie a Prog1.exe le PID (identifiant du processus) ainsi tu peux le piloter, lire les valeurs ou y écrire par l'interface standard d'entrée sortie, ou le fermer.
Soit Prog1.exe, Prog2.exe, 2 scripts AutoIt
Dans Prog1.exe, simplement: Run("Prog2.exe") suffit.
Voir la doc de la commande Run pour plus de paramètres, le dossier de travail pour prog2, la vue (Invisible, Minimiser, Maximiser).
De plus la commande renvoie a Prog1.exe le PID (identifiant du processus) ainsi tu peux le piloter, lire les valeurs ou y écrire par l'interface standard d'entrée sortie, ou le fermer.
-
JamesPatageule
- Niveau 3

- Messages : 36
- Enregistré le : mar. 21 avr. 2009 11:47
- Status : Hors ligne
Re: [..] Programme asynchrone
Merci de la réponse,
Je peux me tromper, mais si Prog1.exe fait un run( "Prog2.exe"), et que ensuite Prog1.exe se termine, il ne tue pas de façon automatique Prog2.exe (car Prog1 est le père de Prog2 ?) ?
Je fait test demain matin pour être certain ... lol
Je peux me tromper, mais si Prog1.exe fait un run( "Prog2.exe"), et que ensuite Prog1.exe se termine, il ne tue pas de façon automatique Prog2.exe (car Prog1 est le père de Prog2 ?) ?
Je fait test demain matin pour être certain ... lol
- matwachich
- Membre émérite

- Messages : 986
- Enregistré le : lun. 19 oct. 2009 04:04
- Localisation : Algérie
- Status : Hors ligne
Re: [..] Programme asynchrone
Rien à voir! c'est pas parceque un prog en lance un autre, qu'il le tue quand il meurt lui même!JamesPatageule a écrit :Merci de la réponse,
Je peux me tromper, mais si Prog1.exe fait un run( "Prog2.exe"), et que ensuite Prog1.exe se termine, il ne tue pas de façon automatique Prog2.exe (car Prog1 est le père de Prog2 ?) ?
Je fait test demain matin pour être certain ... lol
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
-
JamesPatageule
- Niveau 3

- Messages : 36
- Enregistré le : mar. 21 avr. 2009 11:47
- Status : Hors ligne
Re: [..] Programme asynchrone
Je dirais que cela dépends de la façon dont le second programme est exécuté ! Il peut être totalement lié au père ...matwachich a écrit :Rien à voir! c'est pas parceque un prog en lance un autre, qu'il le tue quand il meurt lui même!
Enfin dans mon cas effectivement AutoIT détache les process.
J'avais une faute de frappe qui biaisait mon test ... lol
Merci bien donc, j'ai fait un prog autoit "Launcher" qui ne fait que lancer un autre prog.
Question bonus, est-il possible de faire en sorte que le prog principal soit lui-même capable de faire ça sans le Launcher ?
Je pense que non, mais on sait jamais ...
Encore merci en tous cas !
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Programme asynchrone
Je ne vois pas ou est le problème.
Vous n'avez qu'à inclure le code du Launcher dans le programme principal.
Vous n'avez qu'à inclure le code du Launcher dans le programme principal.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
JamesPatageule
- Niveau 3

- Messages : 36
- Enregistré le : mar. 21 avr. 2009 11:47
- Status : Hors ligne
Re: [..] Programme asynchrone
Oui je pourrais mais il faudrait donc que le programme s'auto appelle ...
Mon soucis est que le Prog2.exe ne rend pas la main, il contient une grosse boucle (1heure).
En fait ce programme est une GUI qui se met en premier plan avec une barre de progression et qui ne fait QUE bloquer les commandes et afficher un message.
En fait j'utilise des séquenceurs PERL pour faire des tâches.
Dans l'ordre :
1 - Prog2.exe --start
2 - ma commande 1
3 - ma commande 2
4 - ma commande 3
5 - Prog2.exe --stop
En fait le but étant que l'utilisateur ne voie pas les commandes.
Mais mon soucis avec ma boucle c'est que le programme ne rends pas la main et donc la suite ne s'exécute pas.
Si j'utilise le launcher pour lancher Prog2.exe, le launcher renvoie un EXIT 0 et donc rends la main, alors que le Prog2.exe lui tourne encore vu qu'il est un fork.
Je cherche un moyen de reproduire le comportement mais sans passer par le launcher.
Mon soucis est que le Prog2.exe ne rend pas la main, il contient une grosse boucle (1heure).
En fait ce programme est une GUI qui se met en premier plan avec une barre de progression et qui ne fait QUE bloquer les commandes et afficher un message.
En fait j'utilise des séquenceurs PERL pour faire des tâches.
Dans l'ordre :
1 - Prog2.exe --start
2 - ma commande 1
3 - ma commande 2
4 - ma commande 3
5 - Prog2.exe --stop
En fait le but étant que l'utilisateur ne voie pas les commandes.
Mais mon soucis avec ma boucle c'est que le programme ne rends pas la main et donc la suite ne s'exécute pas.
Si j'utilise le launcher pour lancher Prog2.exe, le launcher renvoie un EXIT 0 et donc rends la main, alors que le Prog2.exe lui tourne encore vu qu'il est un fork.
Je cherche un moyen de reproduire le comportement mais sans passer par le launcher.
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Programme asynchrone
Votre description reste encore trop vague pour une aide précise.
Donnez nous plus de détails sur l'ordre de vos actions, sur qui fait quoi et comment, pour que éventuellement on puisse vous répondre ...
Des bout de code ou des exemples de ce que vous avez fait seraient appréciables et d'une grande aide.
Donnez nous plus de détails sur l'ordre de vos actions, sur qui fait quoi et comment, pour que éventuellement on puisse vous répondre ...
Des bout de code ou des exemples de ce que vous avez fait seraient appréciables et d'une grande aide.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
JamesPatageule
- Niveau 3

- Messages : 36
- Enregistré le : mar. 21 avr. 2009 11:47
- Status : Hors ligne
Re: [..] Programme asynchrone
Merci pour la réponse.
Ci-joint un dossier compressé avec un exemple EXACT de mon code.
Procédure de test :
1 - Télécharger et décompresser l'archive.
2 - Tester les fichiers BAT à la racine du dossier décompressé :
+ "test1.bat" montre le comportement SANS le fameux "launcher"
+ "test2.bat" montre le comportement AVEC le fameux "launcher"
La différence étant :
Avec "test1.bat" : Il faut attendre la fin de l'écran d'attente (30 secondes) avant de déclencher la commande de ping et la suivante.
Avec "test2.bat" : La commande de ping se lance en MEME TEMPS que l'écran d'attente et donc tourne en arrière plan. ceci est grâce au Launcher.
Je précise que le "CMD /C" est requis et je ne peut pas le remplacer par autre chose (embarqué dans un autre script que je ne maitrise pas)
Ainsi je souhaiterais modifier le programme "SplashScreen.au3" afin qu'il ai le même comportement que quand il est lancé par le Launcher, mais sans ce dernier.
Merci d'avance.
PS : pour sortir de l'écran d'attente, la combinaison est : CRTL (gauche) + SHIFT (droit) + F11
Ci-joint un dossier compressé avec un exemple EXACT de mon code.
Procédure de test :
1 - Télécharger et décompresser l'archive.
2 - Tester les fichiers BAT à la racine du dossier décompressé :
+ "test1.bat" montre le comportement SANS le fameux "launcher"
+ "test2.bat" montre le comportement AVEC le fameux "launcher"
La différence étant :
Avec "test1.bat" : Il faut attendre la fin de l'écran d'attente (30 secondes) avant de déclencher la commande de ping et la suivante.
Avec "test2.bat" : La commande de ping se lance en MEME TEMPS que l'écran d'attente et donc tourne en arrière plan. ceci est grâce au Launcher.
Je précise que le "CMD /C" est requis et je ne peut pas le remplacer par autre chose (embarqué dans un autre script que je ne maitrise pas)
Ainsi je souhaiterais modifier le programme "SplashScreen.au3" afin qu'il ai le même comportement que quand il est lancé par le Launcher, mais sans ce dernier.
Merci d'avance.
PS : pour sortir de l'écran d'attente, la combinaison est : CRTL (gauche) + SHIFT (droit) + F11
- Fichiers joints
-
- MyExample.zip
- Exemple
- (892.27 Kio) Téléchargé 81 fois
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Programme asynchrone
J'ai jeté un oeil sur votre code, mais j'avoue avoir du mal à comprendre la finalité de celui-ci.
Ce qui me perturbe le plus, c'est votre écran d'attente. Vous essayez de piloter cette application par des commandes Start/Stop.
Personnellement j'irais par un plus court chemin.
Une application principale qui gère les événements à gérer.
L'écran d'attente quant à lui il sera géré simplement par son lancement lorsque j'en ai besoin et par un ProcessClose lorsque je veut le terminer ...
Peut être que vos besoin sont plus complexes que cette simple application, mais dans ce cas il en faudrait plus pour nous éclairer.
Ce qui me perturbe le plus, c'est votre écran d'attente. Vous essayez de piloter cette application par des commandes Start/Stop.
Personnellement j'irais par un plus court chemin.
Une application principale qui gère les événements à gérer.
L'écran d'attente quant à lui il sera géré simplement par son lancement lorsque j'en ai besoin et par un ProcessClose lorsque je veut le terminer ...
Peut être que vos besoin sont plus complexes que cette simple application, mais dans ce cas il en faudrait plus pour nous éclairer.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
JamesPatageule
- Niveau 3

- Messages : 36
- Enregistré le : mar. 21 avr. 2009 11:47
- Status : Hors ligne
Re: [..] Programme asynchrone
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 !!!
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
Code : Tout sélectionner
SplashScreen.exe --startPS : 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 !!!
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Programme asynchrone
Donc, j'ai lu votre message et donc compris l'esprit. Je vais donc vous exposer ... donc, mon point de vue.
Pour faire ce que vous recherchez, je verrais plutôt une autre ligne de conduite.
Afin d'être simple et évolutif, ce que je verrais c'est un programme principal qui ce charge de l'exécution de 'séquences'.
Quand je parle de séquences, ce serait un truc dans le genre :
1 programme de 'pilotage'.
1 Fichier séquence (texte, ini ou autre) qui contient la suite des événements à réaliser.
X Scripts d'exécution de divers installations.
Le programme de pilotage lit et exécute les instructions du fichier de séquence tel que par exemple :
Pour faire ce que vous recherchez, je verrais plutôt une autre ligne de conduite.
Afin d'être simple et évolutif, ce que je verrais c'est un programme principal qui ce charge de l'exécution de 'séquences'.
Quand je parle de séquences, ce serait un truc dans le genre :
1 programme de 'pilotage'.
1 Fichier séquence (texte, ini ou autre) qui contient la suite des événements à réaliser.
X Scripts d'exécution de divers installations.
Le programme de pilotage lit et exécute les instructions du fichier de séquence tel que par exemple :
- - Affiche l'écran d'attente.
- Lance le programme ou le script 1 / avec attente de fin de processus ou non.
- Lance le programme ou le script 2 / avec attente de fin de processus ou non.
- Masque ou termine l'écran d'attente.
- Affiche une fenêtre de choix.
- Affiche l'écran d'attente.
- Lance le programme ou le script 3 / avec attente de fin de processus ou non.
- etc ...
- Termine l'écran d'attente.
- Quitte le programme de pilotage.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
JamesPatageule
- Niveau 3

- Messages : 36
- Enregistré le : mar. 21 avr. 2009 11:47
- Status : Hors ligne
Re: [..] Programme asynchrone
Merci de la réponse qui est très censée !
Car en effet, les exécutables et ma question portent justement sur ça.
Mon but est de mettre mes programmes dans un séquenceur ... Le fameux programme unattended que je ne maîtrise pas !
Et je ne souhaite pas faire un système parallèle pour ne pas alourdir le système, et surtout car celui existant gère déjà tout donc les séquencement intercalés de redémarrages système ... je ne souhaite pas réinventer la roue ...
Et c'est donc ce séquenceur qui qui lance mon SplashScreen.exe de façon synchrone et qui attend le code de retour !
C'est donc pourquoi je cherche un système comme expliqué plus haut qui bypass cela.
Merci bien en tous cas.
Car en effet, les exécutables et ma question portent justement sur ça.
Mon but est de mettre mes programmes dans un séquenceur ... Le fameux programme unattended que je ne maîtrise pas !
Et je ne souhaite pas faire un système parallèle pour ne pas alourdir le système, et surtout car celui existant gère déjà tout donc les séquencement intercalés de redémarrages système ... je ne souhaite pas réinventer la roue ...
Et c'est donc ce séquenceur qui qui lance mon SplashScreen.exe de façon synchrone et qui attend le code de retour !
C'est donc pourquoi je cherche un système comme expliqué plus haut qui bypass cela.
Merci bien en tous cas.
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Programme asynchrone
Le plus simple serait de bypasser le premier 'séquenceur'.JamesPatageule a écrit :C'est donc pourquoi je cherche un système comme expliqué plus haut qui bypass cela.
Mais je suppose que vous avez une contrainte de ce coté là ...
De toutes façon, si j'ai bien compris votre problématique, le 'séquenceur primaire' est déjà fait et non modifiable par vous.
La seule chose que vous pouvez faire c'est intercaler le lancement d'une application (SplashScreen.exe) qui doit être capable de gérer l'installation d'applications complémentaires à la liste de ceux du 'séquenceur primaire'.
Pouvez-vous confirmer ou infirmer ?
Si j'ai tout faux, alors je vous demanderais de poser votre problématique par morceaux simple (genre : mon script doit faire ça puis exécuter ça), ce qui nous permettra d'avancer dans le sujet.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
JamesPatageule
- Niveau 3

- Messages : 36
- Enregistré le : mar. 21 avr. 2009 11:47
- Status : Hors ligne
Re: [..] Programme asynchrone
Pile poil dans le mile !
J'ai un séquenceur primaire que je ne maîtrise pas et auquel je dois me plier. Et même si finalement j'en suis bien heureux car pas besoin de le réécrire, faut accepter quelques petites contraintes (rien n'est parfais !).
Donc oui je file des listes d'ordres à mon séquenceur primaire qui ressemblent à ce qui suit :
1 - Démarre le SplashScreen
2 - Exécute mon pool de tâches A
3 - Arrête le SplashScreen
4 - Redémarre
5 - Démarre le SplashScreen
6 - Exécute mon pool de tâches B
7 - Arrête le SplashScreen
....
J'ai comme ça X tâches diverses qui vont du formatage de disque, à l'install d'applications en passant par la copie de fichiers et les modifications registres.
Le séquenceur primaire les enchaîne à la perfection, le seul bémol est l'impossibilité de lui faire lancer en arrière plan une tâche.
C'est ici que je suis venu sur le forum pour vos conseils, et que j'ai fait le fameux "Launcher". Ce dernier que je souhaite maintenant supprimer et donc trouver un autre moyen plus propre de le remplacer.
J'ai un séquenceur primaire que je ne maîtrise pas et auquel je dois me plier. Et même si finalement j'en suis bien heureux car pas besoin de le réécrire, faut accepter quelques petites contraintes (rien n'est parfais !).
Donc oui je file des listes d'ordres à mon séquenceur primaire qui ressemblent à ce qui suit :
1 - Démarre le SplashScreen
2 - Exécute mon pool de tâches A
3 - Arrête le SplashScreen
4 - Redémarre
5 - Démarre le SplashScreen
6 - Exécute mon pool de tâches B
7 - Arrête le SplashScreen
....
J'ai comme ça X tâches diverses qui vont du formatage de disque, à l'install d'applications en passant par la copie de fichiers et les modifications registres.
Le séquenceur primaire les enchaîne à la perfection, le seul bémol est l'impossibilité de lui faire lancer en arrière plan une tâche.
C'est ici que je suis venu sur le forum pour vos conseils, et que j'ai fait le fameux "Launcher". Ce dernier que je souhaite maintenant supprimer et donc trouver un autre moyen plus propre de le remplacer.
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Programme asynchrone
Toujours dans l'optique de clarifier votre demande, votre problème viendrait donc du SplashScreen.
Le pool d'applications A, B, etc ... Ne vous pose donc aucun problème, c'est juste le fait que le SplashScreen vous bloque la suite du 'séquenceur' car tant que le SplashScreen est en fonction, le séquenceur ne peut continuer.
C'est bien cela ?
Le pool d'applications A, B, etc ... Ne vous pose donc aucun problème, c'est juste le fait que le SplashScreen vous bloque la suite du 'séquenceur' car tant que le SplashScreen est en fonction, le séquenceur ne peut continuer.
C'est bien cela ?
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
JamesPatageule
- Niveau 3

- Messages : 36
- Enregistré le : mar. 21 avr. 2009 11:47
- Status : Hors ligne
Re: [..] Programme asynchrone
Exactement !
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Programme asynchrone
Et donc vous cherchez une solution pour lancer SplashScreen avec la gestion de la ligne de commande de manière à l'afficher ou non, mais celui-ci ne doit pas bloquer le 'séquenceur' et renvoyer une valeur.
C'est bien cela ?
C'est bien cela ?
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
JamesPatageule
- Niveau 3

- Messages : 36
- Enregistré le : mar. 21 avr. 2009 11:47
- Status : Hors ligne
Re: [..] Programme asynchrone
C'est bien ça !
- Tlem
- Site Admin

- Messages : 11824
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Programme asynchrone
Whaouuu, tous ces messages pour ça ...
Bon reste encore un mystère à élucider :
Que doit retourner SplashScreen lorsqu'il est lancé en On et en Off ?
Bon reste encore un mystère à élucider :
Que doit retourner SplashScreen lorsqu'il est lancé en On et en Off ?
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
