Salut !
Dans mon application client /serveur je voudrais que mon serveur envoi la liste des processus au client mais je vois pas comment faire ...
Salut !
Dans mon application client /serveur je voudrais que mon serveur envoi la liste des processus au client mais je vois pas comment faire ...
Salut
Batch
Tasklist >c:/proc.txt
Le fichier texte contenant les processus est créé à la racine de c:
Reste à importer dans le client et a envoyé au serveur
j' ai eu exactement la même idée mais jme tournerais plus vers les API windows
je sais pas si il yen a une qui traite les process.
EnumProcesses + GetModuleBaseName, tu as un exemple ici.
Côté envoi "pur", ça reste finalement l'envoi d'une liste de chaînes de caractères (+ éventuellement PID, donc un entier non-signé 32 bits) dont on connait la taille à l'avance, rien de bien sorcier donc.
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
merci bien de la réponse , j'essaye et je vous tient au courant !
heu probleme: erreur de lieur quand je compile le code [http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx] avec Borland 6 en expert console...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 [Lieur Erreur] Unresolved external 'EnumProcesses' referenced from D:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\PROCESS2.OBJ [Lieur Erreur] Unresolved external 'EnumProcessModules' referenced from D:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\PROCESS2.OBJ [Lieur Erreur] Unresolved external 'GetModuleBaseNameA' referenced from D:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\PROCESS2.OBJ
Salut!
Dans la section code source, y a un exemple de gestion de processus, tu pourra y trouver comment lister les processus, c'est ici
++
Merci pour le lien ! avec tout sa j'ai pas mal avancé , mon client liste tous les processus, par contre coté serveur le voudrais récupérer la liste de processus du client pour effectuer un traitement
Coté client :
Code Gestion des ProCess :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 //je récupère la liste des process contenus dans ma listeBox1 AnsiString ListProcess =ListBox1->Items->GetText(); //j' envois une trame contenant différentes OPTION ainsi que la liste des Process ClientSocket1->Socket->SendText(OPTION1+"*"+OPTION2+"*"+OPTION2+"*"+ListProcess):
Coté serveur:
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 // rafraichir la liste des processus en cours d'executions void TForm1::RefreshProcess() { HANDLE hSnapShot; PROCESSENTRY32 uProcess; bool r; char ExeName[256]; ListBoxProcess->Clear(); hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPALL,0); uProcess.dwSize = (DWORD) sizeof(PROCESSENTRY32); r = Process32First(hSnapShot, &uProcess); do // Cette boucle énnumère tout les processus { //on cherche le nom de notre application dans le chemin d'accès de l'éxécutable du processus. strcpy(ExeName, uProcess.szExeFile); ListBoxProcess->Items->Add(ExeName); r = Process32Next(hSnapShot, &uProcess); } while ( r ); CloseHandle(hSnapShot); ListBoxProcess->ItemIndex = index; } //---------------------------------------------------------------------------
Je reçoit ma trame complète, cependant la liste des Process arrive en block je voudré juste rajouté un traitement pour que les process reçu avec :Socket->ReceivText(); soit affiché en sautant une ligne ,dans le code RefreshProcess() je ne voit pas ou je pourrait ajouté un caractère à chaque fin de processus .
Partager