begin process at 2012 05 28 21:59:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Communication entre fenetre


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Communication entre fenetre

dimanche 9 décembre 2001 à 13:19:27 | Communication entre fenetre

manu

bonjour,
je cherche a communiquer entre deux de mes programmes.

je lance deux EXE ecrit en C et je voudrais que le projet 1 puisse passer des parametres au projet 2 (celui ci est deja lance !)

du style :

hHwnd = FindWindow(NULL,"projet2")
hHwnd->args = "toto=1";

projet 2 aurait une boucle qui attendrait la reception d'argument !

HELP ME !

thx !

manu
mardi 11 décembre 2001 à 14:24:14 | Re : Communication entre fenetre

jpeg

J'ai déjà eu affaire à ce pb sous Linux. Problème que j'ai résolu avec les files de messages. Je sais que ces files existent également sous Windows.

Les fonctions à utiliser sont

CreateMailslot, CreateFile, CloseHandle ...

Je te joins un code qui n'est pas de moi (c'est le code que j'ai porté sous Linux). J'espère que ça répondra à tes attentes.

__declspec( dllexport ) unsigned long CreateMsgBox(char *Nom)
{

HANDLE hMailslot;
char *NomMailslot = (char *)calloc(50+strlen(Nom),sizeof(char));

strcat(NomMailslot,"\\\\.\\mailslot\\");
strcat(NomMailslot,Nom);

if((hMailslot=CreateMailslot(NomMailslot,0,MAILSLOT_WAIT_FOREVER,NULL))==INVALID_HANDLE_VALUE)
{
free(NomMailslot);
return(-1);
}
else
{
free(NomMailslot);
return((unsigned long)hMailslot);
}

return(0);
}

__declspec( dllexport ) unsigned long OpenMsgBox(char *Nom)
{

HANDLE hMailslot;

char CmpName[100];
unsigned long Nb=100;
GetComputerName(CmpName,&Nb);

char *NomMailslot = (char *)calloc(Nb+16+strlen(Nom),sizeof(char));

strcat(NomMailslot,"\\\\");
strcat(NomMailslot,CmpName);
strcat(NomMailslot,"\\mailslot\\");
strcat(NomMailslot,Nom);

if((hMailslot=CreateFile(NomMailslot,GENERIC_WRITE|GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL))==INVALID_HANDLE_VALUE)
{
free(NomMailslot);
return(-1);
}
else
{
free(NomMailslot);
return((unsigned long)hMailslot);
}
}

__declspec( dllexport ) unsigned long CloseMsgBox(unsigned long NumMailslot)
{
if(CloseHandle((HANDLE)NumMailslot)==0)
return(-1);
else
return(0);
}

__declspec( dllexport ) unsigned long GetNbrMsgInBox(unsigned long NumMailslot,unsigned long *NbMess)
{
if( GetMailslotInfo((HANDLE)NumMailslot,NULL,NULL,NbMess,NULL)==0)
return(-1);
else
return(0);
}

__declspec( dllexport ) unsigned long GetLengthNextMsg(unsigned long NumMailslot,unsigned long *LengthMsg)
{
if( GetMailslotInfo((HANDLE)NumMailslot,NULL,LengthMsg,NULL,NULL)==0)
return(-1);
else
return(0);
}

__declspec( dllexport ) unsigned long WriteMsg(unsigned long NumMailslot,void *Message,unsigned long LengthMsg)
{
unsigned long nb=0;

if(WriteFile((HANDLE)NumMailslot,Message,LengthMsg,&nb,NULL)!=0)
return(nb);
else
return(-1);
}

__declspec( dllexport ) unsigned long ReadMsg(unsigned long NumMailslot,void *Message,unsigned long LengthMsg)
{
unsigned long nb=0;

if(ReadFile((HANDLE)NumMailslot,Message,LengthMsg,&nb,NULL)!=0)
return(nb);
else
return(-1);
}




-------------------------------
Réponse au message :
-------------------------------

bonjour,
je cherche a communiquer entre deux de mes programmes.

je lance deux EXE ecrit en C et je voudrais que le projet 1 puisse passer des parametres au projet 2 (celui ci est deja lance !)

du style :

hHwnd = FindWindow(NULL,"projet2")
hHwnd->args = "toto=1";

projet 2 aurait une boucle qui attendrait la reception d'argument !

HELP ME !

thx !

manu

jeudi 15 avril 2004 à 07:04:31 | Re : Communication entre fenetre

LordNikos


Lord_Nikos

SAvez vous comment peut-on envoyer un message de plus de 400 bytes via MailSlot à un autre PC en reseau.

apres plusieurs tentative je n'arrive toujours qu'à envoyer des messages de max 400 bytes.

Merci pour votre aide,


Cette discussion est classée dans : projet, fenetre, lance, communication, hhwnd


Répondre à ce message

Sujets en rapport avec ce message

Probleme d'execution avec VC++ [ par AntiSlash ] petit probleme incomprehensible (?):j'utilise VC++ 5.0 et je dessine une fenetre. Quand je mets rien dans la fenetre, et que je creer mon .exe, je le Timer + OpenGL [ par glipper ] Bonjour,je possede un environnement MDI, qui contient une fenetre mere et deux filles (l'une des filles est en OpenGL)J'ai mis un Timer dans la fenetr Communication entre 2 fichiers source d'un même projet [ par MaximeH ] Bonjour,Mon problème est le suivant : Dans un projet (Dev-c++), je dispose de plusieurs fichiers source.Le fichier source 1 appelle une fonction défin Positionnement fenetre [ par flatou ] Salut a tousJ'ai un logiciel qui fait de long calcul et qui occupe tout le haut de mon ecran (largeur de l'ecran et environ 150px de hauteur). Le prog projet windows forms / #include ?? [ par DMK04 ] Bonjour,je developpe une application pour transférer des données via port série. J'ai une classe Communication qui regroupe les commandes dont j'ai be communication par port série [ par Yolak ] Bonjour à tous, Je suis en licence EISI et j'ai un projet à réaliser. Dans ce projet, je dois créer un programme en C permettant d'envoyer une trame Bug avec listview sous xp [ par draluorg ] Salut a tous,Eh voila j'ai un bug assez bizarre avec les listview sous xp.J'ai un petit projet avec une listview codé sous vista sur lequel il marche Fenetre openGL avec Windows Forms !! [ par narutokun66 ] Bonjour, voila je travail sur un projet avec l'OpenGL sous Visual C++ 2008 et maintenant je veux construire une interface , j'ai fait une recherche e [GTK + c]fenetre vide [ par shirah3i ] Salut tout le monde!Je dev un projet en C sous visual6 en win 32 app et mon prog utilise GTK+. Mon Pb c'est que quand je lance ma fenetre GTK, elle es


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,153 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales