Salut,
Je tente d'écrire un programme en C++ plus ou moins standard pour modifier le message personnel de Live Messenger. En fait, c'est pour utiliser la fonction "Afficher ce que j'écoute".
J'ai trouvé pas mal de trucs intéressant sur le net mais je n'y arrive pas.
Donc en me basant sur le code C# fournit par frechy (qui fonctionne), d'ailleurs je pense que c'est le même sur CodeProject, j'ai réussi à faire ça :
Je me suis aussi un peu aider de ce code pour les fonctions FindWindow ou FindWindowEx et SendMessage, mais ne voulant pas utiliser les CString, j'ai aussi pris quelques idées à ce code.
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 #include <iostream> #include <string> #include <windows.h> #define WM_COPYDATA 74 using namespace std; void sendMSNMessage(bool enable, string category, string message) { COPYDATASTRUCT data; HWND handle = NULL; string buffer = "\\0" + category + "\\0" + (enable ? "1" : "0") + "\\0{0}\\0" + message + "\\0\\0\\0\\0\0"; data.dwData = 0x0547; data.lpData = &buffer; data.cbData = (buffer.length() * 2) + 2; cout << "dwData: " << data.dwData << endl; cout << "lpData: " << data.lpData << " : " << buffer.data() << " : " << (void*) buffer.data() << endl; cout << "cbData: " << data.cbData << " : " << buffer.length() << endl; handle = FindWindow("MsnMsgrUIManager", NULL); cout << "handle: " << handle << endl; cout << "&data : " << &data << " : " << (LPARAM) &data << endl; while (handle) { SendMessage(handle, WM_COPYDATA, 0, (LPARAM) &data); } } int main(int argc, string argv) { sendMSNMessage(true, "Music", "test"); return 0; }
Le résultat est au dessus. Ca compile, il y a des valeurs qui s'affichent grâce aux "cout" et qui semblent correcte, mais rien dans la fenêtre MSN...
J'ai essayé plusieurs méthodes mais aucun résultat...
Pouvez-vous m'éclairer sur ce que je fais mal ?
Partager