Несколько полезных процедур и функций в Delphi

Вторник, 26 июля 2011 г.
Рубрика: Архив Itword.net (2007-10)
Метки:
Просмотров: 40047
Подписаться на комментарии по RSS

{*********************Определение своего IP адреса**********************************}

Function GetLocalIP:string;
var
WSAData : TWSAData;
p : PHostEnt;
Name : array [0..$FF] of Char;
begin
WSAStartup($0101, WSAData);
GetHostName(name, $FF);
p := GetHostByName(Name);
Result:=(inet_ntoa(PInAddr(p.h_addr_list^)^));
WSACleanup;
end;

{************************Получение локального имени компьютера********************************}

function GetLocalName:string;
var
WSAData : TWSAData;
Namebuf : Array[0..255] of char;
begin
WSAStartup($101, WSAData);
GetHostname(namebuf, sizeof(namebuf));
Result:=NameBuf;
WSACleanup;
end;

{*************Получение имени компьютера по его IP в сети******************************}

function IPAddressToNetworkName(IPAddr : String): String;
var
                    SockAddrIn: TSockAddrIn;
                    HostEnt: PHostEnt;
                    WSAData: TWSAData;
begin
                    WSAStartup($101, WSAData);
                    SockAddrIn.sin_addr.s_addr:= inet_addr(PChar(IPAddr));
                    HostEnt:= gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4,
                    AF_INET);
if HostEnt<>nil then
begin
                      result:=StrPas(Hostent^.h_name)
end
else
begin
                      result:='';
end;
end;

{******************************Определение IP машины по имени**************************}

function GetIPAddress(Name:String): string;
var
  WSAData : TWSAData;
  p : PHostEnt;
begin
  WSAStartup(WINSOCK_VERSION, WSAData);
  p := GetHostByName(PChar(Name));
  Result := inet_ntoa(PInAddr(p.h_addr_list^)^);
  WSACleanup;
end;

{**************************Отправка сообщений по сети1*********************************}

function SendNetMessage(DestName, MsgText : string) : DWORD;
var wMsgText, wDestName : PWideChar;
Wstrlen:Integer;
begin
  GetMem(wDestName,wStrLen);
  GetMem(wMsgText,wStrLen);
  StringToWideChar(DestName,wDestName,wStrLen);
  StringToWideChar(MsgText,wMsgText,wStrLen);
  Result := NetMessageBufferSend(nil,wDestName,nil,wMsgText,wStrLen);
  FreeMem(wMsgText,wStrLen);
  FreeMem(wDestName,wStrLen);
end;

{*******************Проверка связи с инетом***************************************}

function InternetConnected: Boolean;
{
INTERNET_CONNECTION_MODEM  = 1; // local system uses a modem to
connect to the Internet.
INTERNET_CONNECTION_LAN        = 2; // local system uses a local area
network to connect to the Internet.
  INTERNET_CONNECTION_PROXY      = 4; // local system uses a proxy server to
connect to the Internet.
  INTERNET_CONNECTION_MODEM_BUSY = 8; // local system's modem is busy with a
non-Internet connection.
}
VAR
  dwConnectionTypes : DWORD;
BEGIN
  dwConnectionTypes :=
  INTERNET_CONNECTION_MODEM_BUSY;
  Result := InternetGetConnectedState(@dwConnectionTypes,0);
END;

{*******************Возведение в степень******************************}

function Stepen(osnovanie,stepen:Extended):integer;
begin
Result:= trunc(exp(ln(Osnovanie) * stepen));
end;

{**********************CD-Open*************************************}

function Cdopen:Boolean;
var
handle:Hwnd;
begin
mciSendString('Set cdaudio door open wait', nil, 0, handle);
end;

{*********************CD-Close**********************************}

function CdClose:Boolean;
var
handle:Hwnd;
begin
mciSendString('Set cdaudio door closed wait', nil, 0, handle);
end;
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru pikabu.ru blogger.com liveinternet.ru google.com

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

(обязательно)