SERVER TCP/IP EN UTILISANT LES COMPOSANTS ICS

Messages postés
4716
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
- - Dernière réponse : cs_potiok
Messages postés
2
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
2 janvier 2007
- 2 janv. 2007 à 12:55
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/36655-server-tcp-ip-en-utilisant-les-composants-ics

Afficher la suite 
cs_potiok
Messages postés
2
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
2 janvier 2007
-
Pour ceux qui cherchent encore :
1) enlever la référence à UTFile
2) voici le code de UTGetpid

unit UTGetpid;

interface

uses windows, SysUtils;

function FindProcessByModuleNameNT(Name: string): THandle;

implementation

uses
psapi, tlhelp32;

// returns process ID
function FindProcessByModuleNameNT(Name: string): THandle;
var
PIDList: array[0..1023] of THandle;
i: integer;
ListCount, size: cardinal;
hProcess, hModule: THandle;
ModuleName: array[0..MAX_PATH] of char;
begin
result:= 0;

EnumProcesses(@PIDList, sizeof(PIDList), ListCount);

ListCount:= ListCount div sizeof(THandle);

for i:= 0 to ListCount-1 do
begin
// get process handle for each process id we got
hProcess:= OpenProcess(PROCESS_QUERY_INFORMATION +
PROCESS_VM_READ, false, PIDList[i]);

try
if hProcess <> 0 then
begin
// get handle to first module, which is the exe
if EnumProcessModules(hProcess, @hModule,
sizeof(hModule), size) then
begin
// extract the filename
GetModuleFileNameEx(hProcess, hModule,
ModuleName, sizeof(ModuleName));

if AnsiCompareText(ExtractFileName(StrPas(@ModuleName)), Name) = 0 then
begin
result:= PIDList[i];
exit;
end;
end;
end;
finally
CloseHandle(hProcess);
end;
end;
end;

function FindProcessByModuleName9x(Name: string): THandle;
var
hSnapshot: THandle;
next: boolean;
pe: TProcessEntry32;
begin
result:= 0;

hSnapshot:= CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

if hSnapshot = THandle(-1) then
exit;

FillChar(pe, sizeof(pe), 0);
pe.dwSize:= sizeof(pe);

next:= Process32First(hSnapshot, pe);

while next do
begin
if AnsiCompareText(StrPas(@pe.szExeFile), Name) = 0 then
begin
result:= pe.th32ProcessID;
next:= false;
end
else
next:= Process32Next(hSnapshot, pe);
end;

CloseHandle(hSnapshot);
end;

end.
cs_cantador
Messages postés
4716
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
9 -
Je cherche aussi..
KaStriKer
Messages postés
4
Date d'inscription
dimanche 18 décembre 2005
Statut
Membre
Dernière intervention
13 avril 2006
-
je vais etre chiant mais maintenant ca plante a cause de

Build
[Warning] UTSystem.pas(86): Method 'Create' hides virtual method of base type 'TProcess'
[Fatal Error] UTSystem.pas(141): File not found: 'UTFile.dcu'
vaughan
Messages postés
207
Date d'inscription
mardi 6 août 2002
Statut
Membre
Dernière intervention
29 octobre 2008
-
Ajouté dans la source
KaStriKer
Messages postés
4
Date d'inscription
dimanche 18 décembre 2005
Statut
Membre
Dernière intervention
13 avril 2006
-
ca plante toujours avec le UTEnvironment.dcu