begin process at 2008 07 04 00:58:59
1 204 456 membres
3 nouveaux aujourd'hui
14 114 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

OUVRIR DES DOCUMENTS DANS LA MÊME INSTANCE DE L'APPLICATION SANS RELANCEMENT DE L'EXE (DDE) EN .NET


Information sur la source

Catégorie :OLE, DDE, Automation Source .NET ( DotNet ) Classé sous : ouvrir, instance, dde Niveau : Initié Date de création : 06/01/2007 Date de mise à jour : 17/03/2008 22:28:11 Vu / téléchargé: 6 421 / 547

Note :
Aucune note

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note


Description

Traduction .Net de http://www.vbfrance.com/codes/OUVRIR-DOCUMENTS-DANS-MEME-INSTANCE-APPLICATION-SANS-RELANCEMENT_27089.aspx

Ce code permet d'ouvrir, imprimer... un ou plusieurs documents dans la même instance d'une application ouverte (ou fermée).
Lorqu'une association de fichier paramètre l'utilisation de DDE, un message WM_DDE_INITIATE est envoyé à toutes les fenêtres au premier plan avec le nom de l'application visée par l'action... si une application répond par WM_DDE_ACK, le shell renvoie un message WM_DDE_EXECUTE avec l'action (et le nom de fichier) à accomplir.
Ainisi, en interceptant ces messages, on peut exécuter une action comme ouvrir un document dans un instance en cours d'une application sans relancement de l'exe et sans ligne de commande...de plus, cela permet d'ouvrir plusieurs fichiers à la fois sans lancer autant d'instance que de fichiers...

Conclusion

A noter qu'il ne faut pas utiliser de tableau dynamique (pour les paramètres de l'action) dans la procédure de fenêtre sous peine de faire planter le programme...
A noter aussi que cette méthode est officielle (mais pas surdocumentée) contrairement à d'autres...

Comme tout subclassing, cela peut planter...à chaque fois (erreur de programmation) ou comme Windows (une fois de temps en temps histoire de se faire remarquer)

Ce code ne comporte pas de bugs apparents à ma connaissance...

Ce code crée une association de fichier .XYZ et utilise cette extension pour DDE...

N'hésitez pas à commenter et à noter...
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

13 janvier 2007 21:37:15 :
correction d'un bug de conversion d'atomes...
17 mars 2008 22:28:11 :
ajout des arguments de la ligne de commandes EXTAssociation avec les classes Microsoft.Win32
  • signaler à un administrateur
    Commentaire de sousoulebarbu le 07/01/2007 09:59:23

    Loin de moi l'idée de critiquer (je serais incapable d'en faire autant), mais cette fonction est déja présente de base (Application à instance unique et StartupNextInstance) ou je me trompe???

  • signaler à un administrateur
    Commentaire de ShareVB le 07/01/2007 10:42:36

    salut,

    disons que j'arrive un peu tard avec ce code car (d'après ce que j'ai cru comprendre) StartupNextInstance est apparu dans VB2005 et n'est d'ailleurs pas disponible dans les autres langages .Net...donc disons que si par hasard si on programme pour le framework 1.0 ou VB < 2005, ca peut servir...

    donc oui : StartupNextInstance et application à instance unique font la même chose...pour VB2005...

    cela dit ce code doit pouvoir fournir plus que StartupNextInstance car il doit être possible de télécommander un programme utilisant ce code avec un autre programme...la principale utilité de DDE...

    ShareVB

  • signaler à un administrateur
    Commentaire de FraGag le 08/01/2007 02:06:49

    D'après ce que j'ai vu dans les documents d'Office, DDE est utilisé pour ouvrir des documents dans la même instance, mais aussi pour donner des commandes comme Imprimer, fermer le document puis quitter s'il ne reste plus de documents ouverts (bien sûr, on pourrait aussi faire ça en ligne de commande...).

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS