Récupération Adresse IP du PC: Erreur Classe non enreistrée [Résolu]

chrisp2005 5 Messages postés mardi 5 avril 2005Date d'inscription 20 mars 2007 Dernière intervention - 7 avril 2005 à 09:48 - Dernière réponse : chrisp2005 5 Messages postés mardi 5 avril 2005Date d'inscription 20 mars 2007 Dernière intervention
- 8 avril 2005 à 07:26
Help me!
J'utilise Delphi 3!
Je n'ai trouvé qu'un moyen de récupérer l'adresse IP du PC qu'utilise le logiciel que j'ai développé en Delphi 3 (je n'ai rien trouvé dans l'API Windows):
Composant: TTCP = > propriété: LocalIP

Hors celui-ci implique l'Active X WinSck.ocx (et certaines DLL dont la Winsock.dll).

J'ai placé les DLL et l'OCX dans Windows\System32 (ou system pour Windows 9x) et j'ai enregistré l'activeX dans les machines en utilisant "RegSvr32 C:\windows\system32\MSWinSck.Ocx" => pas d'erreur (bien enregistré) puis j'ai rebooté les PC

Au chargement de la Form utilisant le composant TTCP (OleCtrls.dcu et isp3.dcu), il y a l'erreur: "Tolesyserror : Classe non enregistrée".
Pourtant sur ma machine, aucune erreur (évidemment j'ai Delphi3)

Questions: 1) Aurais-je oublié de "charger" quelque chose (DLL ou autre OCX) sur la machine ?
2) Y aurait-il une fonction de l'API ou autre, pouvant être utilisé dans Delphi 3, pour obtenir l'IP du PC sans utiliser ce composant TTCP ?

Merci d'avance !
ChrisP
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
WhiteHippo 1270 Messages postés samedi 14 août 2004Date d'inscription 5 avril 2012 Dernière intervention - 7 avril 2005 à 21:14
3
Merci
En Delphi 3 tu dis !! c ici chrisp2005 :
http://delphi.developpez.com/faq/?page=reseau#adresseip

N.B. Les fonctions WSAStartup, GetHostName sont dans l'unité WinSock à rajouter dans le uses.

Cordialement.

Merci WhiteHippo 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de WhiteHippo
Meilleure réponse
chrisp2005 5 Messages postés mardi 5 avril 2005Date d'inscription 20 mars 2007 Dernière intervention - 8 avril 2005 à 07:26
3
Merci
Je te remercie et ça marche impeccable !

Merci et bon courage !
ChrisP

Merci chrisp2005 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de chrisp2005
jmp77 1232 Messages postés lundi 4 février 2002Date d'inscription 4 octobre 2006 Dernière intervention - 7 avril 2005 à 10:15
0
Merci
Hello,



Tiens je ne sais pas si ca fonctionnera sous delphi 3 mais voici la fonction que j utilise pour recuperer l adresse IP du pc :

{------------------------------------------------------------------------------}

{
Permet de récupérer l'adresse IP du
pc
}

{------------------------------------------------------------------------------}

Function CheckIP : ShortString;



Type

TaPInAddr = array [0..10] of PInAddr;

PaPInAddr = ^TaPInAddr;



var

//HWSADataErr,HIPAddress : PChar;

HHostEnt : PHostEnt;

//HPaPinAddr : PaPInAddr;

HName : array [0..255] of char;

I : Integer;

HWSAData : TWSADATA;

SIPAddress : ShortString;



begin



If WSAStartup($0101, HWSAData) <> 0 then

begin



case WSAGetLastError of

WSASYSNOTREADY :

Result := ('Indicates that the underlying network '+


'subsystem is not ready for network communication.');

WSAVERNOTSUPPORTED :

Result := ('The version of Windows Sockets support '+


'requested is not provided by this particular '+

'Windows Sockets implementation.');

WSAEINPROGRESS :

Result := ('A blocking Windows Sockets 1.1 operation is in progress.');

WSAEPROCLIM :

Result :=('Limit on the number of tasks supported by '+


'the Windows Sockets implementation has been reached.');

WSAEFAULT :

Result := ('The lpWSAData is not a valid pointer.');

end;

end

else

begin



If GetHostName(@HName, SizeOf(HName)) = 0 then

begin

HHostEnt :=GetHostByName(@HName);



If HHostEnt <> nil then

begin

{IP Internet}

{HPaPinAddr := PaPInAddr(HHostEnt^.h_addr_list);

I := 0;



while HPaPinAddr^[I] <> nil do

begin

SIPAddress:=StrPas(inet_ntoa(HPaPinAddr^[I]^));

Inc(I);

end;



StrLcopy(HipAddress,@SIPAddress[1],length(SIPAddress));

Result := SIPAddress;//String(HipAddress);}



{IP PC Local}

SIPAddress:='';



for i:=0 to HHostEnt^.h_length - 1 do


SIPAddress:=SIPAddress + IntToStr(ord(HHostEnt^.h_addr_list^[i])) + '.';



Result := SIPAddress;

end

else

begin



case WSAGetLastError of

WSANOTINITIALISED :


Result := ('A successful WSAStartup must occur before '+


'using this function.');

WSAENETDOWN :


Result := ('The network subsystem has failed.');

WSAHOST_NOT_FOUND :


Result := ('Authoritative Answer Host not found.');

WSATRY_AGAIN :


Result := ('Non-Authoritative Host not found, or server failure.');

WSANO_RECOVERY :


Result := ('Nonrecoverable error occurred.');

WSANO_DATA :


Result := ('Valid name, no data record of requested type.');

WSAEINPROGRESS :


Result := ('A blocking Windows Sockets 1.1 call is in '+


'progress, or the service provider is still '+


'processing a callback function.');

WSAEFAULT :


Result := ('The name argument is not a valid part of '+


'the user address space.');

WSAEINTR :


Result := ('The (blocking) call was canceled through
WSACancelBlockingCall.');

end;

end;

end

else

begin



case WSAGetLastError of

WSAEFAULT :

Result := ('The name argument is not a valid part of the '+


'user address space, or the buffer size specified '+


'by namelen argument is too small to hold the '+


'complete host name.');

WSANOTINITIALISED :

Result := ('A successful WSAStartup must occur before '+


'using this function.');

WSAENETDOWN :

Result := ('The network subsystem has failed.');

WSAEINPROGRESS :

Result := ('A blocking Windows Sockets 1.1 call is '+


'in progress, or the service provider is '+


'still processing a callback function.');

end;

end;



WSACleanup;

end;

end;


Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Commenter la réponse de jmp77
chrisp2005 5 Messages postés mardi 5 avril 2005Date d'inscription 20 mars 2007 Dernière intervention - 7 avril 2005 à 10:37
0
Merci
Merci JMP mais malheureusement impossible de compiler tous les types:
PInAddr
PHostEnt
TWSADATA... en Delphi 3
et aussi les fonctions: WSAStartup, GetHostName

Mais encore Merci et bon courage !
ChrisP2005
Commenter la réponse de chrisp2005

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.