Aide à l'enregistrement

Signaler
Messages postés
63
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
25 juin 2013
-
Messages postés
63
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
25 juin 2013
-
Bonjour,

Je voudrai faire la chose suivante :

Lorsque l'on enregistre un document à partir d'une application, je souhaite que la boîte de saisie de l'enregistrement affiche soit une icone (du même style qu'un répertoire), soit une application dans, par exemple, le répertoire "Mes documents".
Si l'on clique sur cette icone, elle lance une application. Cette application, permet à l'opérateur de structurer le nom du fichier et son chemin (application en VB.net). Quand-on referme cette application, je souhaite retrouver la boîte de saisie enregistrement de Windows avec le chemin et le nom du fichier dans la zone de saisie.

Il esicte une application en VBA, elle intercepte la commande de sauvegarde (enregistrer et enregistrer-sous) et traite la structuration du nom et du chemin par programme. Ca fonctionne correctement. Je veux étendre ce fonctionnement à d'autres applications. Même des applivations qui ne supportent pas VBA.
En résumé, le but est d'aller ranger un fichier avec un nom correct au bon endroit.

Plusieurs question :
Ai-je été clair ?
Est-ce possible ?
Si oui et j'espère que ce sera le cas, pouvez-vous me fournir quelques indications ou liens pour réaliser la chose ?
Ou existe-t'il une autre méthode ?

Merci d'avance.
RLAPT

6 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut

Clair ?
Non, pas vraiment.

"Lorsque l'on enregistre un document à partir d'une application"
Quelle application ? La tienne ?

"je souhaite que la boîte de saisie de l'enregistrement affiche (...) une icone (du même style qu'un répertoire)"
Quel cheval ?
Qu'une boite d'enregistrement affiche une icone ?
Mais une "boite", disons une forme pour être plus technique, afficher une icone : Oui, bah place ton icone sur ta forme.

"... soit une application dans, par exemple, le répertoire "Mes documents"."
Afficher une application dans un répertoire : va falloir dire ce que tu entends par là.

"Si l'on clique sur cette icone, elle lance une application."
Là, c'est plus facile, il y a juste à programmer l'évenement _Click de l'icone.

"Cette application, permet à l'opérateur de structurer le nom du fichier et son chemin"
de structurer ?
Ça veut dire quoi ?

Je crois qu'on doit pas fumer les mêmes cigarettes.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
63
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
25 juin 2013

Bonjour,

Mise à part l'aspect Monsieur je sais tout, merci de vous pencher sur mes difficultés actuelles.

Je vais donc essayer d'expliquer la chose d'une autre manière (coté utilisateur).

Je souhaite qu'au moment où l'opérateur enregistre son travail sur le disque dur ou sur serveur (avec n'importe qu'elle application commerciale), il ai accès dans la boîte de saisie d'enregistrement à quelque chose (bouton ou icone, etc..) qui lance une application. Cette application (que j'ai développée pour en VBA et que je compte porter sous VB.net) va structurer le nom du fichier et déterminer le chemin où aller ranger le fichier. Au retour, la boîte d'enregistrement, contient le nom structuré du fichier et son chemin. Il ne reste plus à l'opérateur que de cliquer sur le bouton enregistrer.

C'est la première idée qui m'est venue, les logiciels de GED que je connais, fonctionnant comme cela.
Le top serait que l'opérateur ne voit la boîte d'enregistrement et qu'au moment où il clique pour enregistrer son fichier, il ai directement l'interface de mon application.

Je me permets de rappeler le but de cette application que je compte dévelepper => aller ranger un fichier avec un nom correct au bon endroit.


Si ce n'est toujours pas clair, laissez tomber. Merci quand même.

RLAPT
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
234
Bonjour, rlapt,

Je tiens avant tout à dire que les remarques et questions de jack me paraissent on ne peut plus claires et justifiées (j'allais intervenir exactement de la même manière, lorsque j'ai vu l'intervention parfaitement adaptée de jack )

Je tiens également à réagir maintenant à ce que tu réponds à jack :
Mise à part l'aspect Monsieur je sais tout

Bien ! Adresse-toi alors à des "Messieurs qui ne savent rien"
Bonne chance.

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient

Salut,

Alors d'après ce que j'ai (pas) compris, je fais partie des "Messieurs qui ne savent rien"...

Tu dis:
Je souhaite qu'au moment où l'opérateur enregistre son travail sur le disque dur ou sur serveur (avec n'importe qu'elle application commerciale), il ai accès dans la boîte de saisie d'enregistrement à quelque chose (bouton ou icone, etc..) qui lance une application.


Je vois mal comment tu vas ajouter un bouton ou une icône dans la boîte d'enregistrement sur "n'importe qu'elle application commerciale"





CF2i - Guadeloupe
Ingénierie Informatique
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Passons sur les civilités, je voulais juste de faire remarquer que ta demande manquait de précision sur ton environnement et qu'il était impossible d'y répondre. Il faut garder à l'esprit qu'on ne sait rien de ce que tu as sous les yeux. D'où l'intérêt de relire sa question en se mettant à la place d'un étranger à ton environnement.

"avec n'importe qu'elle application commerciale"
On avance.
C'est un "détail" important que tu avais négligé de préciser et qui change tout dans la nature de ta demande.

"Cette application que j'ai développée pour en VBA et que je compte porter sous VB.net"
En lisant entre les lignes, encore une fois, je suppose que ton programme VBA s'occupait de cette tâche lors des "enregistrements" au sein même de l'application Office, pas en surveillant l'enregistrement d'une appli commerciale.
Précise-le stp.
Si tel était vraiment le cas, dis-nous quelle technique tu utilisais en VBA pour intercepter l'ouverture de la fenêtre "SaveAs" d'une appli commerciale - ça donnera un guide à la méthode à appliquer.

Il faut d'abord supposer que ton logiciel commercial utilise la fenêtre de "SaveAs" de Windows.
Ensuite, il faudra que ton application surveille, parmi les handles de windows, l'apparition d'une fenêtre ayant les caractéristiques de cette fenêtre - Pour ça, il faudra tester sa classe/son titre + vérifier que les boutons et zones de saisie qu'elle renferme sont bien présents.
--> Utilisation des APIs comme GetDesktopWindow, GetWindow, GetWindowText, GetClassName
Une fois que tu es sûr qu'il s'agit de cette fenêtre, il faudra quand même vérifier qu'elle a bien été lancée par le logiciel commercial que tu surveilles, en vérifiant que le handle de la fenêtre "SaveAs" à pour parent le handle du programme commercial.
Ensuite, il faut trouver les handles des boutons et zones de saisie que tu comptes modifier --> Mêmes APIs
Pour envoyer des données, il faudra utiliser l'API SendMessage,

Tout ceci est une solution plutôt VB6 et je ne saurais t'aiguiller vers des solutions .Net, bien que ne pense pas que les Frameworks aient une fonction nommée TrouveLaFenêtreDeSaveAsQuiVientDeSouvrir

Quel Windows ?
Cela aussi peut avoir une influence sur les solutions à adopter.
Messages postés
63
Date d'inscription
lundi 6 octobre 2003
Statut
Membre
Dernière intervention
25 juin 2013

Bonsoir Jack,

Merci de votre réponse. Cela me donne une piste de recherche, bien que je ne crois pas être à ce niveau là. Mai bon, il suffit peut être de suivre ce fil conducteur et de chercher.

Je serai par contre preneur d'un exemple, pour bien débuter.

Pour ce qui concerne l'interception de la fenêtre SaveAs en VBA, j'ai résolu la difficulté de façon assez simple jusqu'à office 2003. Il faut :
- chercher les boutons enregistrer et enregistrer-sous dans les barres d'outils ;
- leurs réaffecter avec la propriété OnAction, une autre procédure qui ouvre mon application VBA.
- puis sauver le fichier avec la procédure SaveAs en tenant compte du chemin et du nom de fichier trouvé.

Concernant l'OS, nous sommes en pleine mutation windows7 et Office 2010. Jusqu'à présent c'était XP et Office 2003.

Merci encore.


RLAPT