| 
| 
 | Вопрос # 6 232/ вопрос закрыт / | 
 |  Доброго времени суток, уважаемые эксперты!Помогите мне дописать код.
 Мне надо сделать пинг на №-ые ip предположим на 192.168.1.10 - 192.168.1.15  Когда отсутствует сеть то в текстовом файле создал и сохранил отчет в виде:
 25-07-2012:16-30 пинг пропал на ip 92.168.1.10
 25-07-2012:16-40 пинг появился на ip 92.168.1.10
 и в каждой сети отдельный отчет.
 пжлст помогите исходником.....
 
|  |   Вопрос задал: POWER (статус: Посетитель)Вопрос отправлен: 25 июля 2012, 12:58
 Состояние вопроса: закрыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 9; последнее сообщение — 26 июля 2012, 11:57; участников в обсуждении: 3. 
|   | DNK (статус: Студент), 25 июля 2012, 13:13 [#1]:Мы с радостью! Только не вижу, что дописывать. "Digital Networked Knight" |  
|   | min@y™ (статус: Доктор наук), 25 июля 2012, 13:13 [#2]:А зачем для этого писать программу? BAT-файла с командами, ИМХО, достаточно. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | POWER (статус: Посетитель), 25 июля 2012, 13:29 [#3]:а как на bat сделать? я то знаю что такое бат но не знаю что писать и как писать? |  
|   | POWER (статус: Посетитель), 25 июля 2012, 13:30 [#4]:DNK, вот мой исход... 
 procedure Ping(IP: String; OutMemo:TMemo);
 const BUFSIZE = 2000;
 var SecAttr    : TSecurityAttributes;
 hReadPipe,
 hWritePipe : THandle;
 StartupInfo: TStartUpInfo;
 ProcessInfo: TProcessInformation;
 Buffer     : Pchar;
 WaitReason,
 BytesRead  : DWord;
 begin
 with SecAttr do
 begin
 nlength              := SizeOf(TSecurityAttributes);
 binherithandle       := true;
 lpsecuritydescriptor := nil;
 end;
 if Createpipe (hReadPipe, hWritePipe, @SecAttr, 0) then
 begin
 Buffer  := AllocMem(BUFSIZE + 1);
 FillChar(StartupInfo, Sizeof(StartupInfo), #0);
 StartupInfo.cb          := SizeOf(StartupInfo);
 StartupInfo.hStdOutput  := hWritePipe;
 StartupInfo.hStdInput   := hReadPipe;
 StartupInfo.dwFlags     := STARTF_USESTDHANDLES +
 STARTF_USESHOWWINDOW;
 StartupInfo.wShowWindow := SW_HIDE;
 if CreateProcess(nil,
 PChar('ping.exe '+IP),
 @SecAttr,
 @SecAttr,
 true,
 NORMAL_PRIORITY_CLASS,
 nil,
 nil,
 StartupInfo,
 ProcessInfo) then
 begin
 repeat
 WaitReason := WaitForSingleObject( ProcessInfo.hProcess,100);
 Application.ProcessMessages;
 until (WaitReason <> WAIT_TIMEOUT);
 Repeat
 BytesRead := 0;
 ReadFile(hReadPipe, Buffer[0], BUFSIZE, BytesRead, nil);
 Buffer[BytesRead]:= #0;
 OemToAnsi(Buffer,Buffer);
 OutMemo.Text := OutMemo.text + String(Buffer);
 until (BytesRead < BUFSIZE);
 end;
 FreeMem(Buffer);
 CloseHandle(ProcessInfo.hProcess);
 CloseHandle(ProcessInfo.hThread);
 CloseHandle(hReadPipe);
 CloseHandle(hWritePipe);
 end;
 end;
 
 procedure TForm1.Button1Click(Sender: TObject);
 begin
 Ping('192.168.1.10', Memo1);
 end;
 |  
|   | DNK (статус: Студент), 25 июля 2012, 14:03 [#5]:Грёбаный Экибезтуз! Учись оформлять вставку кода! 
 Обязательно мучиться с ping.exe? Почему не сделать через ICMP.DLL?
 "Digital Networked Knight" |  
|   | min@y™ (статус: Доктор наук), 25 июля 2012, 14:13 [#6]: Цитата (DNK): Обязательно мучиться с ping.exe? Почему не сделать через ICMP.DLL?  Да необязательно... Можно заюзать TPing - компонент из пакета ICS.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | POWER (статус: Посетитель), 26 июля 2012, 10:19 [#7]:min@y™, можно по подробнее? |  
|   | min@y™ (статус: Доктор наук), 26 июля 2012, 10:38 [#8]: Цитата (POWER): можно по подробнее?  Ну нафига? Качаешь пакет компонентов (например, вот отсюдова), устанавливаешь их в свою delphi. Среди прочих новых появившихся на палитре компонентов будет компонент TPing. А дальше открываешь демо-пример пингования с помощью этого компонента. У меня в компе он лежит вот тут d:\Компоненты\ICS\Delphi\Internet\PingTst.dpr, а где он у тебя будет, я не знаю. Смотришь внимательно исходник примера и вкуриваешь, как там чо работает.
 
 У меня всё.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | POWER (статус: Посетитель), 26 июля 2012, 11:57 [#9]:ок, спасибо, попробую потом напишу  ))) |  26 сентября 2012, 15:29: Вопрос закрыт (решение принял DNK): Я уж все глаза выплакал, чем всё кончилось. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |