V'la le souci:
Je cherche � faire communiquer 2 applications sur un server web par envoie de message Windows. L'une est dans une session ASPNET l'autre dans la session de l'utilisateur (qui peut varier)...
Est-ce possible et si oui, comment ?
![]()
V'la le souci:
Je cherche � faire communiquer 2 applications sur un server web par envoie de message Windows. L'une est dans une session ASPNET l'autre dans la session de l'utilisateur (qui peut varier)...
Est-ce possible et si oui, comment ?
![]()
je maitrise pas le truc (aspnet )mais on peut dire si il n'y a pas de fenetre pas de SendMessage ....
sinon oriente toi plutot vers les pipes nomes .
![]()
Ce qui est affirm� sans preuve peut �tre ni� sans preuve Euclide.
Les conversions num�riques en C,C++,C++/CLI
DLL d'extensions : �criture d'un plug-in de classe
D�marrer avec les MFC 2/2
Cr�ation d'un ActiveX MFC
Int�gration d'une imprimante PDF pour �ditions automatis�es
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
D�marrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
quesaco ?
Tu aurais un exemple ?
Meric pour ton aide.
exemple sur codeguru:
http://www.codeguru.com/system/NPW.html
![]()
Ce qui est affirm� sans preuve peut �tre ni� sans preuve Euclide.
Les conversions num�riques en C,C++,C++/CLI
DLL d'extensions : �criture d'un plug-in de classe
D�marrer avec les MFC 2/2
Cr�ation d'un ActiveX MFC
Int�gration d'une imprimante PDF pour �ditions automatis�es
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
D�marrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
![]()
Je vais tester...
![]()
Je vais tester...
Yop, la creation du pipe ne fonctionne pas dans l'autre session...
Y a t-il des parametres particulier a mettre ?![]()
sur le lien il y a quelqu'un qui a signale un pb avec tsrv tu devrais essayer les modifs suivantes:
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 BOOL cPipe::RegisterPipe ( void ) { ... // Create registry key // insert the desktop HWND bevore the m_PipeName CString strDesktopWnd; strDesktopWnd.Format("%lu", GetDesktopWindow()); // m_SubKey = "SOFTWARE\\" + m_GUID + "\\" + m_PipeName; m_SubKey = "SOFTWARE\\" + m_GUID + "\\" + strDesktopWnd + "\\" + m_PipeName; ... } BOOL cPipe::RetrievePipe ( void ) { ... // Open registry key // insert the desktop HWND bevore the m_PipeName CString strDesktopWnd; strDesktopWnd.Format("%lu", GetDesktopWindow()); // m_SubKey = "SOFTWARE\\" + m_GUID + "\\" + m_PipeName; m_SubKey = "SOFTWARE\\" + m_GUID + "\\" + strDesktopWnd + "\\" + m_PipeName; ... }
Ce qui est affirm� sans preuve peut �tre ni� sans preuve Euclide.
Les conversions num�riques en C,C++,C++/CLI
DLL d'extensions : �criture d'un plug-in de classe
D�marrer avec les MFC 2/2
Cr�ation d'un ActiveX MFC
Int�gration d'une imprimante PDF pour �ditions automatis�es
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
D�marrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
autre exemple plus epure :
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100 // server #include "iostream.h" #include <process.h> void msnpClientThread(HANDLE msnPipe) { char textBuffer[128]; DWORD numBytesRead; DWORD numBytesWritten; while(1) { if(!ReadFile(msnPipe,textBuffer,128,&numBytesRead,(LPOVERLAPPED)NULL)) { cerr << "error:unable to read from named pipe" << endl; break; } _strupr(textBuffer); if(!WriteFile(msnPipe,textBuffer,strlen(textBuffer)+1,&numBytesWritten,(LPOVERLAPPED)NULL)) { cerr << "error:unable to write to named pipe" << endl; break; } cout << textBuffer <<endl; } FlushFileBuffers(msnPipe); DisconnectNamedPipe(msnPipe); CloseHandle(msnPipe); } #define MAX_INSTANCES 3 void mainServer() { HANDLE msnPipe; DWORD msnpThread; while(1) { msnPipe=CreateNamedPipe("\\\\.\\pipe\\msnp",PIPE_ACCESS_DUPLEX,PIPE_TYPE_BYTE | PIPE_WAIT, MAX_INSTANCES,0,0,150,(LPSECURITY_ATTRIBUTES)NULL); if(msnPipe== INVALID_HANDLE_VALUE) { cerr << "Error: Unable to create a named pipe " << endl; continue; } if(!ConnectNamedPipe(msnPipe,(LPOVERLAPPED)NULL)) { cerr << "Error: Unable to connect a named pipe " << endl; CloseHandle(msnPipe); return ; } msnpThread = _beginthread(msnpClientThread,0,(HANDLE)msnPipe); if(msnpThread==-1) { cerr << "Error : Unable to create Thread " << endl; CloseHandle(msnPipe); } } } // client void mainClt() { HANDLE msnPipe; DWORD numBytesRead; DWORD numBytesWritten; char textToSend[128]; char textRecvd[128]; char machineName[80]; char pipeName[80]; cout << "enter Name of server machine"; cin >> machineName; wsprintf(pipeName,"\\\\%s\\pipe\\msnp",machineName); msnPipe=CreateFile(pipeName,GENERIC_READ | GENERIC_WRITE,0, (LPSECURITY_ATTRIBUTES)NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,(HANDLE)NULL); if(msnPipe==INVALID_HANDLE_VALUE) { cerr << "Error: Unable to connect a named pipe " << endl; return ; } while(1) { cout << "type text to send:"; cin.getline(textToSend,128); if(!WriteFile(msnPipe,textToSend,strlen(textToSend)+1,&numBytesWritten,(LPOVERLAPPED)NULL)) { cerr << "error:unable to write to named pipe" << endl; CloseHandle(msnPipe); return ; } if(!ReadFile(msnPipe,textRecvd,128,&numBytesRead,(LPOVERLAPPED)NULL)) { cerr << "error:unable to read from named pipe" << endl; CloseHandle(msnPipe); return ; } cout << "Received :" << textRecvd << endl; } }
Ce qui est affirm� sans preuve peut �tre ni� sans preuve Euclide.
Les conversions num�riques en C,C++,C++/CLI
DLL d'extensions : �criture d'un plug-in de classe
D�marrer avec les MFC 2/2
Cr�ation d'un ActiveX MFC
Int�gration d'une imprimante PDF pour �ditions automatis�es
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
D�marrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Le premier exemple ne fonctionne pas (m�me avec la modif) sous XP...
Sous 2000 �a doit �tre ok. (mais pas test�)
Par contre l'exemple �pur� fonctionne presque en multi session (ASPNET + MySession). J'arrive a connecter le pipe, Mais je n'arrive rien a �crire dedans (multi session ou non)
J'ai les erreur cot� server et client :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3 Unable to read from named pipe" Peut-être un erreur de configuration des pipes ??
Le premier exemple ne fonctionne pas (m�me avec la modif) sous XP...
Sous 2000 �a doit �tre ok. (mais pas test�)
Par contre l'exemple �pur� fonctionne presque en multi session (ASPNET + MySession). J'arrive a connecter le pipe, Mais je n'arrive rien a �crire dedans (multi session ou non)
J'ai les erreur cot� server et client :
Peut-�tre un erreur de configuration des pipes ??
Code : S�lectionner tout - Visualiser dans une fen�tre � part Unable to read from named pipe"
peut etre une erreur lie a la securite ,faudrait faire ressortir le code d'erreur avec getlasterror() ,je serais pas etonne d'avoir erreur 5 acces denied.
si c'est ca il faudra travailler avec les attributs de securites (ACLS)
a confirmer donc ..
![]()
Ce qui est affirm� sans preuve peut �tre ni� sans preuve Euclide.
Les conversions num�riques en C,C++,C++/CLI
DLL d'extensions : �criture d'un plug-in de classe
D�marrer avec les MFC 2/2
Cr�ation d'un ActiveX MFC
Int�gration d'une imprimante PDF pour �ditions automatis�es
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
D�marrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
En fait c'�tait tout con... il fallait �crire :
Au lieu de
Code : S�lectionner tout - Visualiser dans une fen�tre � part if(!ReadFile(msnPipe,textBuffer,128,&numBytesRead,(LPOVERLAPPED)NULL))
Maintenant je confirme que c'est bon !
Code : S�lectionner tout - Visualiser dans une fen�tre � part if(ReadFile(msnPipe,textBuffer,128,&numBytesRead,(LPOVERLAPPED)NULL))![]()
![]()
Merci !!!!
oups une erreur de recopie![]()
a+
![]()
Ce qui est affirm� sans preuve peut �tre ni� sans preuve Euclide.
Les conversions num�riques en C,C++,C++/CLI
DLL d'extensions : �criture d'un plug-in de classe
D�marrer avec les MFC 2/2
Cr�ation d'un ActiveX MFC
Int�gration d'une imprimante PDF pour �ditions automatis�es
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
D�marrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Partager