Comment lancer un programme en tache de fond ? RESOLU [Windows] - Divers - Programmation
Marsh Posté le 17-02-2003 à 17:19:05
Je connais pas du tout DDE.
Si tu pouvais me donner des infos sur comment se passe le pilotage de Word via DDE.
Pour l'instant, moi je bataille avec COM/OLE et c'est pas trivial ...
J'aimerais savoir comment tu démarres Word.
D'apres ce que j'ai lu ici :
http://msdn.microsoft.com/library/ [...] change.asp
tu as un handle de la fenetre Word.
Comment l'obtiens-tu ?
Marsh Posté le 17-02-2003 à 17:29:26
Désolé HelloWorld, je ne connais pas le détail de l'aspect technique du projet, je posais la question car nos prestataires ne savent pas comment résoudre ce problème
Marsh Posté le 17-02-2003 à 17:43:40
Ben si tu veux lancer Word en tache de fond, faut deja te demander ou c'est qu'il est lancé dans ton prog.
C'est ca que je te demande.
Marsh Posté le 17-02-2003 à 17:45:03
Petite précision : Word est lancé à partir d'un appel DOS à winword.exe, donc si vous connaissiez un petit paramètre qui permette de lancer une appli en arrière-plan ça serait super.
Edit : cela répond-t-il à ta question HelloWorld ?
Marsh Posté le 17-02-2003 à 17:49:40
Eh beh voila !
Sauf que "appel DOS" je vois pas trop ce que c'est ... system() ?
Remplace par ShellExecute, ca devrait faire ton bonheur :
http://msdn.microsoft.com/library/ [...] xecute.asp
En dernier parametre, tu mets SW_HIDE.
Marsh Posté le 17-02-2003 à 17:57:55
Ben ce que j'appelle un appel DOS, c'est lorsque tu te mets sous l'invite de commande DOS, tu tapes 'winword.exe' et ça te lance Word sous Windows.
En gros l'appel à Word se fait sous SAS, qui lui-même passe par le DOS (la syntaxe sous SAS est du type 'blablabla winword.exe' où blalblabla est spécifique à SAS)
En fait ce que j'espérais, c'est qu'il existe un petit paramètre sous DOS (du genre -background ) que tu utilises du style winword.exe -background te lances Word en arrière-plan ...
Ou éventuellement en passant par un petit .bat...
Mais je ne suis pas trop chaud pour utiliser des fonctions win32 j'ai peur que cela entraîne trop de trucs à dvper pour ce genre de prob ?
Marsh Posté le 17-02-2003 à 18:06:00
Bon j'ai trouvé ce que je voulais : en fait sous l'invite de commande, il suffit de taper 'start /min' avant le nom du programme, et ca roule !
Pour essayer, vous pouvez taper 'start /min winword' et ça vous lance Word directement iconisé dans la barre des tâches.
Marsh Posté le 17-02-2003 à 18:14:36
J'y avais pensé mais je suis pas fan de ce procédé.
Tu peux rajouter /LOW aussi pour encore moins pénaliser les utilisateurs.
Marsh Posté le 17-02-2003 à 17:08:25
Nous avons une appli développée sous SAS qui va générer un fichier sous Word 97 (via lien DDE).
Pour des questions de buffer, dans le cas de gros fichiers Word, l'appli SAS va lancer et fermer Word plusieurs fois à la suite pour générer un document de taille importante (elle reprend à chaque ouverture là où elle en était restée à la dernière fermeture).
Le problème est le suivant : à chaque ouverture, Word se lance en premier plan. Or nos utilisateurs veulent pouvoir continuer de travailler sur l'appli pendant que celle-ci génère le fichier Word, ce qui n'est guère envisageable avec une fenêtre Word s'ouvrant et se fermant toutes les 30 secondes !
Comment lancer un programme sous Windows de façon à ce que celui-ci soit en arrière-plan ?
Merci pour vos suggestions !
Message édité par irulan le 17-02-2003 à 18:06:18