IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Communiquer entre plusieurs instances d'applications


Sujet :

C++Builder

  1. #1
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 54
    Points : 44
    Points
    44
    Par défaut Communiquer entre plusieurs instances d'applications
    Salut,
    j'aimerais que deux applications lancées communiquent entre elles...
    Je pense qu'il faut utiliser les fonctions SendMessage et GetMessage, mais je ne comprends pas comment elles fonctionnent...
    Si quelqu'un pouvait me donner un exemple concret, ce serait vraiment sympa.
    Merci d'avance...

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Microsoft recommende plutot le FileMapping et la gestion d'évènements pour la communication interprocess.

    Extrait de MSDN :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    The following functions are used with file mapping. 
     
    Function Description 
     
    CreateFileMapping Creates or opens a named or unnamed file-mapping object for the specified file.
     
    FlushViewOfFile Writes to the disk a byte range within a mapped view of a file. 
     
    MapViewOfFile Maps a view of a file into the address space of the calling process. 
     
    MapViewOfFileEx Maps a view of a file into the address space of the calling process.
     
    OpenFileMapping Opens a named file-mapping object. 
     
    UnmapViewOfFile Unmaps a mapped view of a file from the calling process's address space.
    J'ai utlisé ces fonctions avec C Builder 3, ça marche très bien.

  3. #3
    Membre du Club
    Inscrit en
    Juin 2003
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 54
    Points : 44
    Points
    44
    Par défaut
    Pour le moment, j'arrive à créer des fichiers mappés, mais je n'arrive pas à écrire dedans... OUIN !!


  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Voilà un exemple de code possible :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    if ((hwndexe = FindWindow(_NOM_FORM_, NULL)) != NULL)
    {
           HANDLE hMapFile = CreateFileMapping((void *)0xFFFFFFFF,  // Current file handle.
                                                NULL,     // Default security.
                                                PAGE_READWRITE,// Read/write permission.
                                                0,  // Max. object size.
                                                strlen("blablabla") + 1,  // Size of hFile.
                                                _NOM_MAPPING_); // Name of mapping object.
     
    		if (hMapFile == NULL)
    		{
    				return ;
    		}
    	   LPVOID lpMapAddress = MapViewOfFile(hMapFile, // Handle to mapping object.
                                                FILE_MAP_ALL_ACCESS,// Read/write permission
                                                0, 0, 0);                 // Max. object size.
     
    	   if (lpMapAddress == NULL)
    		{
    				CloseHandle(hMapFile);
    				return ;
    		}
     
    		strcpy((char *)lpMapAddress, "blablabla");
     
    		UnmapViewOfFile(lpMapAddress);
    		CloseHandle(hMapFile);
    		SendMessage(hwndexe, WM_USER+300, 0, 0); // je previens l'autre appli
    }
    Salut

  5. #5
    Membre habitué
    Avatar de Alacazam
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 88
    Points : 167
    Points
    167
    Par défaut
    Bonsoir,

    Citation Envoyé par bourinator
    Pour le moment, j'arrive à créer des fichiers mappés, mais je n'arrive pas à écrire dedans... OUIN !!
    Lis les Tut's ... et le ciel t'aidera

    Tutoriel sur les Hook's

    N.B. Prière de Rechercher et consulter FAQ, Trucs & Astuces et Tutos avant de poster, merci

    Bonne soirée,
    Mathieu
    Développeur confirmé C++, Java, Python, JS.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    CreateFileMapping sur Google et tu as environ 3 180 secours !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Synchroniser des données entre plusieurs instances d'une même application
    Par wil4linux dans le forum Windows Presentation Foundation
    Réponses: 10
    Dernier message: 12/02/2013, 13h58
  2. Quels choix pour communiquer entre plusieurs postes
    Par kayobil dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 21/03/2011, 17h23
  3. OLE pour communiquer entre différente instance d'une application
    Par justgreat dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 12/12/2009, 20h59
  4. Problème de cloisonnement entre plusieurs instances
    Par nostub dans le forum Langage
    Réponses: 2
    Dernier message: 05/12/2006, 18h00
  5. [c#] communiquer entre les instances d'une appli
    Par damned3 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 10/10/2006, 10h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo