SERVER TCP/IP EN UTILISANT LES COMPOSANTS ICS

Signaler
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
-
Messages postés
2
Date d'inscription
mercredi 23 juillet 2003
Statut
Membre
Dernière intervention
2 janvier 2007
-
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

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.
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
12
Je cherche aussi..
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'
Messages postés
198
Date d'inscription
mardi 6 août 2002
Statut
Membre
Dernière intervention
29 octobre 2008

Ajouté dans la source
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
Messages postés
198
Date d'inscription
mardi 6 août 2002
Statut
Membre
Dernière intervention
29 octobre 2008

Supprimer tout les fichiers dcu et faire une recompile !!!
Messages postés
4
Date d'inscription
dimanche 18 décembre 2005
Statut
Membre
Dernière intervention
13 avril 2006

Des que je compile ca donne ca :

[Fatal Error] USvrCmd.pas(71): File not found: 'UTEnvironment.dcu'
Messages postés
198
Date d'inscription
mardi 6 août 2002
Statut
Membre
Dernière intervention
29 octobre 2008

Merci de recompiler l'ensemble du projet SrvCmd.

David
Messages postés
4
Date d'inscription
dimanche 18 décembre 2005
Statut
Membre
Dernière intervention
13 avril 2006

Ya t-il une solution pour compiler avec le probleme du TEnvironment.dcu?
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
12
pour info le n° du zip : delphifr_source_36655.zip
Non du projet : SrvCmd.dpr
@+
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
12
ton projet s'appelle "SvrCmd"..
Messages postés
198
Date d'inscription
mardi 6 août 2002
Statut
Membre
Dernière intervention
29 octobre 2008

Tenvironment.dcu est un composant à moi !!!

Peux-tu faire un construire "clientReseau" dans le menu Projet de delphi
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
12
Oui mon lien est bon et j'en ai ajouté un deuxième me permettant d'éviter certaines erreurs mais j'ai maintenant un souci avec
TEnvironment.dcu..
Messages postés
198
Date d'inscription
mardi 6 août 2002
Statut
Membre
Dernière intervention
29 octobre 2008

C'est pas mon prog qui à un soucis mais plutôt ton environnement :

Tu as bien dans "Chemin des bibliothèque" ton environnement qui point sur ICS ?

Le composant WsktsrvrCmd viens de ICS
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
12
je n'en suis pas là..j'ai plein de messages d'erreur à l'ouverture du prog concernant des propriétés qui ne passent pas comme par ex :

"WsktsrvrCmd.LastError: Propriété en lecture seule"
etc. etc.
Sous Delphi 7 windows XP sp2
Messages postés
198
Date d'inscription
mardi 6 août 2002
Statut
Membre
Dernière intervention
29 octobre 2008

Tu as un message d'erreur à l'execution du programme ?

Ton serveur se trouve normalement dans le systray. Click droit et faire open afin de voir si il est en attente client.
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
12
Je suis tenace et j'ai donc tout repris et après avoir trituré les paquets pendant plus d'une heure, j'ai maintenant 23 composants ICS dans mon onglet et aucun message d'erreur à l'ouverture de D7.. avec les bons liens
Donc installation nickel.
Mais l'appli ne fonctionne pas...
????
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
12
il s'agit en fait du fichier WSocket.dcu..
j'ai tout réinstallé, mais rien à faire..
je bosse sous D7 XP sp2.
??
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
12
ta ta ta ,
il en faut..car j'ai supprimé les intrus et ça compile certes mais le prog plante encore..

bref, j'ai tjrs un os avec WSocketServer.dcu qui n'existe pas sur mon disque..
il ne risque pas de le trouver.

Moi, qd je publie qlqchose ça marche na !
Messages postés
198
Date d'inscription
mardi 6 août 2002
Statut
Membre
Dernière intervention
29 octobre 2008

C'est des versions Béta ... il te suffi de compiler et d'enlever les composants qui n'ont pas de lien à chaque erreur !!!

Courage
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
12
je l'ai fait mais ça plante car je n'ai pas :
FtpSrv.dcr
??
Messages postés
198
Date d'inscription
mardi 6 août 2002
Statut
Membre
Dernière intervention
29 octobre 2008

Ah !!!
N'oublie surtout pas de compiler le package ICS car ton soucis vient qu'il te manque le fichier .dcu résultant de la compilation du package.
Messages postés
198
Date d'inscription
mardi 6 août 2002
Statut
Membre
Dernière intervention
29 octobre 2008

Le mieux c'est aller à la source donc sur le site officiel ICS :

http://www.overbyte.be/frame_index.html

Moi j'ai la version V5 mais la V6 doit prendre en charge Delphi 2006 en plus.
Messages postés
4715
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
12
Je suis intéressé par ce programme, mais j'ai un souci avec
WSocketServer.dcu..
c'est peut-être beaucoup demandé mais pourrais-tu fournir le zip des composants ICS car il m'en manque pas mal..

merci par avance
et vive delphi !