Server tcp/ip en utilisant les composants ics

Soyez le premier à donner votre avis sur cette source.

Vue 9 292 fois - Téléchargée 1 480 fois

Description

Voir ma source
CLIENT TCP/IP EN UTILISANT LES COMPOSANTS ICS

BUT :
Faire un serveur afin de communiquer en TCP/IP entre la machine server et un client à l'aide des composants ICS

LISTE DES COMMANDES DISPONIBLES POUR LE CLIENT:

SET [Nom]=[Valeur] Insertion d?une variable d?environnement
SET [Nom] Visualisation d?une variable d?environnement
START [Process] [P1] [2] ... [n] Exécution d?une application
EXIT Déconnexion du client
WHO Visualisation des connexions
TIME Visualisation de la date serveur
CMD [Commande] Exécution d?une commande dos
KILL [Process] Suppression d?un process

LISTE DES VARIABLES D ENVIRONNEMENT SYSTEM :

Variables commentaire
SC_WrkDir Répertoire de travail
SC_Usr Nom d?utilisateur
SC_Pwd Mot de passe
SC_Domain Domaine

Ces variables d'environnement sont utilisées pour lancer avec START un process sur un répertoire de travail donnée et avec un autre compte utilisateur (RUNAS)

Source / Exemple :


Voir zip

Conclusion :


A vous de jouer afin d'enrichir la liste des commandes dans la procedure TfrmSvrCmd.ProcessData

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

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
4992
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.