#include <vcl.h>
#include <winsock.h>
#define SIZE_NAME 48
#define SIZE_USER 36
class INFO
{
 public:
 UnicodeString computer_Name();
 UnicodeString user_Name();
 UnicodeString my_IP();
};
UnicodeString INFO::computer_Name()
{
  DWORD value_Size=SIZE_NAME;
  UnicodeString value_Name;
  wchar_t *tab_Name;
  tab_Name=new wchar_t[SIZE_NAME];
  tab_Name[0]='\0';
  GetComputerName(tab_Name,&value_Size);
  value_Name=UnicodeString(tab_Name);
  delete tab_Name;
  return value_Name;
}
UnicodeString INFO::user_Name()
{
 DWORD value_Size=SIZE_USER;
 UnicodeString value_Name;
 wchar_t *tab_Name;
 tab_Name=new wchar_t[SIZE_USER];
 tab_Name[0]='\0';
 GetUserName(tab_Name,&value_Size);
 value_Name=UnicodeString(tab_Name);
 return value_Name;
}
UnicodeString INFO::my_IP()
{
 hostent* temp_Info;
 bool begin=true;
 in_addr *temp_Address;
 UnicodeString comp_Name;
 AnsiString comp_String;
 AnsiString value_Ansi;
 UnicodeString value_Unicode;
 comp_Name=computer_Name();
 comp_String=comp_Name;
 if(begin)
 {
   WORD temp_Version=MAKEWORD(1,0);
   WSADATA temp_Data;
   WSAStartup(temp_Version,&temp_Data);
 }
 temp_Info=gethostbyname(comp_String.c_str());
 comp_String=(AnsiString)(temp_Info->h_name);
 temp_Address=(in_addr*)(*(temp_Info->h_addr_list));
 value_Ansi=(AnsiString)inet_ntoa(*temp_Address);
 value_Unicode=value_Ansi;
 WSACleanup();
    return value_Unicode;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 INFO iF;
 Edit1->Text=iF.user_Name();
 Edit2->Text=iF.computer_Name();
 Edit3->Text=iF.my_IP();
}

Brak komentarzy:
Prześlij komentarz