PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → LanceAppli winword exebloquant ne marche pas
LanceAppli winword exebloquant ne marche pas
Débuté par Seb, 19 mai 2006 13:37 - 11 réponses
Posté le 19 mai 2006 - 13:37
Bonjour à tous !

Voilà mon problème :
j'aimerai ouvrir un document word dans word et que cela bloque l'execution de mon application tant que word n'est pas fermé.
Donc bien sur j'ai tout de suite essayé cela :

LanceAppli("C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE c:\test.doc",exeActif,exeBloquant)

ca m'ouvre bien mon fichier dans word; mais le problème c'est que ca ne bloque pas mon application.
j'ai essayé avec l'exemple fournis dans l'aide :

LanceAppli("NOTEPAD.EXE Lisezmoi.txt",exebloquant)
et là ca marche nickel...

Quelqu'un a une idée pour que ca fonctionne aussi sous word ?

Merci d'avance
Posté le 19 mai 2006 - 15:16
Salut,

probablement que winword.exe n'est qu'un lanceur qui lance un autre programme et se ferme. Du coup ton projet continue a s'exécuter.

A+
Adrien

http://codel5g.eu
Posté le 19 mai 2006 - 15:44
Bonjour,

Es-tu bien sur de ta syntaxe, qu'aucune entité "exeBloquant" n'a été déclarée par ailleurs et que Word n'est pas déja ouvert ?
(Si Word est déja ouvert l'appli reprend effectivempent la main de suite).

Parce que je viens de faire un simple copier coller de ton code et chez moi ça marche nickel.
L'application est en attente de la fermeture de Word pour reprendre.

A+

--
Francis MOREL
Posté le 19 mai 2006 - 15:50
Et avec la ligne suivante :

LanceAppli("C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE c:\test.doc",exeActif,vrai)

Cette exemple te permet de lancer ton fichier, en te rendant impossible toute action depuis ton projet, tant que tu n'as pas fermer word.

HM
Posté le 19 mai 2006 - 15:51
Seb a émis l'idée suivante :

Bonjour à tous !

Voilà mon problème :
j'aimerai ouvrir un document word dans word et que cela bloque l'execution de
mon application tant que word n'est pas fermé. Donc bien sur j'ai tout de
suite essayé cela :

LanceAppli("C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE
c:\test.doc",exeActif,exeBloquant)

ca m'ouvre bien mon fichier dans word; mais le problème c'est que ca ne
bloque pas mon application. j'ai essayé avec l'exemple fournis dans l'aide :

LanceAppli("NOTEPAD.EXE Lisezmoi.txt",exebloquant)
et là ca marche nickel...

Quelqu'un a une idée pour que ca fonctionne aussi sous word ?

Merci d'avance


Bonjour pour régler le pb je fais un test sur le fichier utilisé par
word pour informer que le doucment est en cours

NomDuDocumentVerrouille=NomDuDocument
NomDuDocumentVerrouille[[1 A 2]]="~$"

puis après l'ouverture du .doc

TANTQUE fFichierExiste(DocumentVerrouillé)=Vrai
Multitache(-1)
FIN

C'est en place chez pas mal de client et pas de pb, ça fonctionne et ça
ne consomme pas.

--
Philippe
Posté le 19 mai 2006 - 15:58
Le problème c'est que c'est bien WINWORD.EXE que je retrouve dans ma liste des processus.
et je ne trouve pas d'autre WINWORD.EXE sur mon pc.
Posté le 19 mai 2006 - 16:13
tu as raison je viens de killer le processus de winword qui se lance automatiquement avec outlook et là effectivement ca marche. comment gérer ca ??
Posté le 19 mai 2006 - 17:05
Dans son message, Seb racontait :

tu as raison je viens de killer le processus de winword qui se lance automatiquement avec outlook et là effectivement ca marche. comment gérer ca ??


Je pense que le processus winword fait un fork au lancement : il se lance, vérifie si une instance existe deja, si non il ouvre le fichier, si oui il
signale a l'instance d'ouvrir le fichier.
Ce qui fait que le process lancé est bien winword, mais ca n'est pas la meme instance que celle que l'on souhaite diriger.

Il faudrait peut etre (si quelqu'un sait faire) traquer non pas le nom du programme mais son PID.

Je ne suis pas assez calé pour le faire, je n'ai d'ailleurs pas encore trouvé la fonction windev correspondante si elle existe, donc si un des
"maitres de l'art" pouvait se pencher sur ce probleme ca serait cool.
--
Lionel

mailto:lionel.breil*NOSPAM*@gmail.com
(retirer *NOSPAM* pour m'écrire)
Posté le 19 mai 2006 - 17:30
Lionel a écrit :
Dans son message, Seb racontait :

tu as raison je viens de killer le processus de winword qui se lance automatiquement avec outlook et là effectivement ca marche. comment gérer ca ??


Je pense que le processus winword fait un fork au lancement : il se lance, vérifie si une instance existe deja, si non il ouvre le fichier, si oui il
signale a l'instance d'ouvrir le fichier.
Ce qui fait que le process lancé est bien winword, mais ca n'est pas la meme instance que celle que l'on souhaite diriger.

Il faudrait peut etre (si quelqu'un sait faire) traquer non pas le nom du programme mais son PID.

Je ne suis pas assez calé pour le faire, je n'ai d'ailleurs pas encore trouvé la fonction windev correspondante si elle existe, donc si un des
"maitres de l'art" pouvait se pencher sur ce probleme ca serait cool.


en version 5.5, il y avait un exemple qui s'appelait ExeLancé().
La solution serait peut-être de vérifier si une instance de Winword
existe, de la 'killer', puis de lancer windows en mode bloquant.

Mais je ne suis pas calé non plus. :)

--
Jacques Trepp
Albygest - 81160 - St Juery
jacques-pas de spam.trepp@free.fr
(enlever '-pas de spam' pour me joindre)
http://www.albygest.com
Posté le 19 mai 2006 - 18:09
cette solution ne fonctionne ... on peut toujours avoir accéder à l'application et l'utiliser.... ce qui me parait bizard.....

Mais merci quand même d'avoir répondu
Posté le 19 mai 2006 - 18:09
j'y ai pensé mais si la personne était en train de taper un courrier, lui killer son process comme ca....... c'est pas le top....

mais merci de donner des réponses.
Posté le 19 mai 2006 - 18:52
Dans son message, Philippe racontait :

Seb a émis l'idée suivante :

Bonjour à tous !

Voilà mon problème :
j'aimerai ouvrir un document word dans word et que cela bloque l'execution de
mon application tant que word n'est pas fermé. Donc bien sur j'ai tout de
suite essayé cela :

LanceAppli("C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE
c:\test.doc",exeActif,exeBloquant)

ca m'ouvre bien mon fichier dans word; mais le problème c'est que ca ne
bloque pas mon application. j'ai essayé avec l'exemple fournis dans l'aide :

LanceAppli("NOTEPAD.EXE Lisezmoi.txt",exebloquant)
et là ca marche nickel...

Quelqu'un a une idée pour que ca fonctionne aussi sous word ?

Merci d'avance

Bonjour pour régler le pb je fais un test sur le fichier utilisé par
word pour informer que le doucment est en cours

NomDuDocumentVerrouille=NomDuDocument
NomDuDocumentVerrouille[[1 A 2]]="~$"

puis après l'ouverture du .doc

TANTQUE fFichierExiste(DocumentVerrouillé)=Vrai
Multitache(-1)
FIN

C'est en place chez pas mal de client et pas de pb, ça fonctionne et ça
ne consomme pas.


Il me semble que le fichier temporaire n'est créé qu'a la premiere modification du document word => tant que l'utilisateur ne l'a pas modifié, pas de
temp, donc l'application continue de tourner.
Ne serait-il pas plus simple d'ouvrir le fichier dans un champ html ?
--
Lionel

mailto:lionel.breil*NOSPAM*@gmail.com
(retirer *NOSPAM* pour m'écrire)