Enregistrer un doc word avec son handle
Stagiaire WDF
Inscrit:
19/01/2011 10:09
Post(s): 3
Bonjour,
Je cherche à enregistrer un document déjà ouvert sous word avec son handle
J'arrive sans problème à le faire si je l'ouvre a partir de mon application mais pas moyen s'il est déjà ouvert

pour info je recupere le handle avec :
API( "user32.dll", "GetClassNameA", nHwnd, &sNomClasseDeFenetre, nTailleMaxNomClasse)

j'arrive a le fermer en utilisant :
SendMessage(nHwnd,WM_CLOSE,0,0)
mais a première vue la constante WM_SAVE n'existe pas

Pourriez vous m'aider SVP ?

Contribution le : 19/01/2011 10:11
Créer un fichier PDF de la contribution Imprimer


Re: Enregistrer un doc word avec son handle
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
hmmm, vous confondez Handle et ce que l'on peut lancer sur un Handle de fenetre et m'éthodes d'activeX.

Votre GetClassName retourne le handle de la fenêtre word dans la couche windows.
WM_CLOSE est donc interprété dans cette couche (USER32.DLL) et correspond au déclenchement de la fermeture de la fenêtre (comme un ALT+F4).

Pour une fermeture propre je vous invite à passer par un pilotage ActiveX. Votre exe pilotera l'instance de word en cours... et vous exécuterez tout ce qui est programmable en VBA dans word, à savoir l'enregistrement du document si modifié lors de la fermeture.

Contribution le : 19/01/2011 10:44
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: Enregistrer un doc word avec son handle
Stagiaire WDF
Inscrit:
19/01/2011 10:09
Post(s): 3
Merci
Je vais passer par OLE Automation

Contribution le : 20/01/2011 18:21
Créer un fichier PDF de la contribution Imprimer


Re: Enregistrer un doc word avec son handle
Stagiaire WDF
Inscrit:
25/10/2010 10:06
Post(s): 2
Citation :

R&B a écrit:
hmmm, vous confondez Handle et ce que l'on peut lancer sur un Handle de fenetre et m'éthodes d'activeX.

Votre GetClassName retourne le handle de la fenêtre word dans la couche windows.
WM_CLOSE est donc interprété dans cette couche (USER32.DLL) et correspond au déclenchement de la fermeture de la fenêtre (comme un ALT+F4).

Pour une fermeture propre je vous invite à passer par un pilotage ActiveX. Votre exe pilotera l'instance de word en cours... et vous exécuterez tout ce qui est programmable en VBA dans word, à savoir l'enregistrement du document si modifié lors de la fermeture.


j'utilise maintenant le champ ActiveX (web browser) pour afficher le doc Word mais je ne sais pas comment exécuter l'enregistrement !!


merci pour vos aides

Contribution le : 23/02/2011 18:42
Créer un fichier PDF de la contribution Imprimer


Re: Enregistrer un doc word avec son handle
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Bonjour,
La manipulation de l'activeX ou de l'objet OLE (c'est la même couche), se fait de telle sorte que les commandes word sont des méthodes et propriété de l'activeX/Objet.

Or ces commandes et propriété ne sont en réalité rien d'autre que celles proposées par le langage interne de Word à savoir le VBA (visual basic pour application) que vous trouvez dans leurs macros...
il n'y a que pour la syntaxe que les choses changent : les . deviennent des >>

ActiveXWord>>save(paramètres)



Hum, à la réflexion, je vous invite à utiliser une variable Objet OLE "Word application" pour piloter Word.
Voyez ce qu'on a fait avec Excel (classe excel) pour vous en inspirer. L'activeX webbrowser n'est pas prévu pour faire marcher la couche VBA d'un doc Word. La méthode "Save" n'existera donc pas.

Contribution le : 24/02/2011 08:02

Edité par R&B sur 25/2/2011 10:35:18
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: Enregistrer un doc word avec son handle
Stagiaire WDF
Inscrit:
25/10/2010 10:06
Post(s): 2
bonne réflexion car je pense que j'ai pas exprimé mon soucis,
l'idée donc est d'afficher un document word 2003 dans une fenêtre, l'utilisateur peut par la suite éditer le document comme s'il est sous word. je veux utiliser cette solution pour ne le laisser pas la possibilité d'enregistrer le document dans un autre chemin (pas d'enregistrer sous).
Mon problème est d'envoyer une commande pour enregistrer le document modifié, donc j'ai essayé deux solutions :
1) par un champ html, là je peux enregistrer le doc, mais mes clients auront un problème avec le mécanisme de sécurité de Windows 7 puisque cette solution demande une intervention sur le registre Windows.
2) par un champ ActiveX, là pas de problème avec Win7, mais je ne trouve pas comment je peux envoyer la commande d'enregistrement !

Dans un autre cas,où je veux remplir un document modèle par les informations d'un client sans "afficher" word bien sur, j'utilise une variable Objet OLE "Word application" pour piloter Word.

est ce que c'est faisable donc d'utiliser une variable OLE pour piloter le document ouvert dans un champ ActiveX webbrowser ?

Contribution le : 03/03/2011 16:28
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2