INSTANCE UNIQUE + COMMUNICATION DE MESSAGES (COMPATIBLE 32 ET 64 BIT)

Signaler
Messages postés
149
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
30 janvier 2009
-
Messages postés
91
Date d'inscription
dimanche 16 avril 2006
Statut
Membre
Dernière intervention
17 avril 2008
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45998-instance-unique-communication-de-messages-compatible-32-et-64-bit

Messages postés
91
Date d'inscription
dimanche 16 avril 2006
Statut
Membre
Dernière intervention
17 avril 2008
1
Bah en fait le système de communication doit être paramétré pour être utilisé. Pour les gens qui ne veulent que savoir si ya déjà une instance ouverte, ils n'ont qu'à créer un SingleInstanceManager et, s'ils veulent faire apparaitre leur fenêtre, ils font SetWindow (met le handle dans la zone mappée) et le travail peut se faire. La communication est désactivée tant qu'on ne l'a pas explicitement demandée.
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Pas que pour le developpeur, pour le CPU aussi...
Mais bon, avec .NET on n'est plus à ça près.
Messages postés
91
Date d'inscription
dimanche 16 avril 2006
Statut
Membre
Dernière intervention
17 avril 2008
1
Je tiens à spécifier que ta méthode est effectivement celle utilisée par le programme. Le HWND est transféré dans une région partagée en mémoire. Par contre le "dialogue" est pour envoyer des chaînes de caractères vers l'application. Pour cela envoyer des WM_COPYDATA est plus adapté. Mais cela cause une surcharge pour le développeur .NET, qui doit surcharger WndProc.
Messages postés
91
Date d'inscription
dimanche 16 avril 2006
Statut
Membre
Dernière intervention
17 avril 2008
1
@BruNews:
Est-ce que ta source permet le transfert de paramètres comme ceux envoyés par l'éxécutable ? on dirait que non. La première partie est rigoureusement identique à la mienne. Et si c'était juste cela, il existe des mécanismes en .NET qui font cela. Des sources sont d'ores et déjà disponibles sur csharpfr. Mais ma source permet de transférer simplement des chaînes de caractères vers l'instance unique en utilisant WM_COPYDATA. Dans Paint.NET, cette fonctionnalité est utilisée pour envoyer vers la fenêtre les images qu'on ouvre via l'explorateur windows.
Afficher les 11 commentaires