Thread aol

NeoUmbrella Messages postés 117 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 15 janvier 2013 - 31 déc. 2004 à 00:10
NeoUmbrella Messages postés 117 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 15 janvier 2013 - 5 janv. 2005 à 22:09
Salut, voila j'aimerais recupere les noms des
personnes presentes en salon aol.
Les pseudos sont inscrits dans une listbox, pas de probleme
pour trouver son handle.
Seulement pas moyen de récupérer les noms dedans avec LB_GETTEXT
Il y'a un moyen c'est d'utiliser les Threads, GetWindowThreadProcessId ect...
J'ai le code en vb mais je n'arrive pas a le passer en c++
Si quelqu'un pouvait m'aider :question)

NeoUmbrella Corp.

4 réponses

cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
31 déc. 2004 à 00:27
donne le code en VB et on verra ce qu'on peut faire...
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
NeoUmbrella Messages postés 117 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 15 janvier 2013
31 déc. 2004 à 00:30
Public Sub AjoutPseudo(List As ListBox) 'Sub pour ajouter les Pseudo du chat

Dim cProcess As Long, itmHold As Long, rList As Long, sThread As Long, mThread As Long
Dim psnHold As Long, rBytes As Long, Index As Long
Dim Pseudo As String

If Salon& = 0& Then Exit Sub
On Error Resume Next

rList& = FindWindowEx(Salon&, 0&, "_AOL_Listbox", vbNullString)
sThread& = GetWindowThreadProcessId(rList, cProcess&)
mThread& = OpenProcess(PROCESS_READ Or RIGHTS_REQUIRED, False, cProcess&)
Form1.Text1 = mThread
Form1.Text2 = itmHold

If mThread& Then
For Index& = 0 To SendMessage(rList, LB_GETCOUNT, 0, 0) - 1
Pseudo$ = String$(4, vbNullChar)
itmHold& = SendMessage(rList, LB_GETITEMDATA, ByVal CLng(Index&), ByVal 0&)
itmHold& = itmHold& + 28

Call ReadProcessMemory(mThread&, itmHold&, Pseudo$, 4, rBytes)
Call CopyMemory(psnHold&, ByVal Pseudo$, 4)
psnHold& = psnHold& + 6
Pseudo$ = String$(16, vbNullChar)

Call ReadProcessMemory(mThread&, psnHold&, Pseudo$, Len(Pseudo$), rBytes&)
Pseudo$ = Left$(Pseudo$, InStr(Pseudo$, vbNullChar) - 1)
List.AddItem Pseudo$

Next Index&
Call CloseHandle(mThread)
End If
End Sub

wala si qq peut traduire en c++ moi jbloque djas sur mThread
je recupere tout le temps 2000 :/

NeoUmbrella Corp.
0
NeoUmbrella Messages postés 117 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 15 janvier 2013
31 déc. 2004 à 13:43
J'ai oublié de dire que
Private Const PROCESS_READ = &H10
Private Const RIGHTS_REQUIRED = &HF0000

Brunews tu pourrais m'aider steplé ?

NeoUmbrella Corp.
0
NeoUmbrella Messages postés 117 Date d'inscription vendredi 5 novembre 2004 Statut Membre Dernière intervention 15 janvier 2013
5 janv. 2005 à 22:09
Jme repond moi meme, ca peut ptet intérésser certains :

void ListerPseudos(void)
{
HWND hListBox = ObjetSalon(4);
cout << "Handle : " << (long)hListBox << '\n';

long mThread, itmHold, psnHold;
unsigned long cProcess,sThread, rBytes;
int nbPseudo = 0;
BYTE Pseudo[4] = "";


int comptA = 1;



sThread = GetWindowThreadProcessId(hListBox, &cProcess);
cout << "sThread : " << sThread << '\n';
mThread = (long)OpenProcess(PROCESS_ALL_ACCESS, true, cProcess);
cout << "mThread : " << dec << mThread << '\n';
nbPseudo = SendMessage(hListBox,LB_GETCOUNT, 0, 0) - 1;
cout << "Nombre de pseudos : " << nbPseudo << '\n';
itmHold = SendMessage(hListBox, LB_GETITEMDATA, 0, 0);
itmHold += 28;
cout << "itmHold :" << itmHold << '\n';
ReadProcessMemory((LPVOID)mThread, (LPCVOID)itmHold, Pseudo, 4, &rBytes);
cout << rBytes << '\n';
CopyMemory(&psnHold, Pseudo, 4);
psnHold +=6;


cout << psnHold << '\n';
ReadProcessMemory((LPVOID)mThread, (LPCVOID)psnHold, Pseudo, 16, & rBytes);
cout << Pseudo;





return;
}

j'lai codé pour un pseudo, il suffit de rajouter une boucle pour les avoir tous ^^

NeoUmbrella Corp.
0
Rejoignez-nous