Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 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 Вопрос закрыт (ответы не принимаются, мини-форум закрыт)

Вопрос задал: POWER (статус: Посетитель)
Вопрос отправлен: 25 июля 2012, 12:58
Состояние вопроса: закрыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 9; последнее сообщение — 26 июля 2012, 11:57; участников в обсуждении: 3.
DNK

DNK (статус: Студент), 25 июля 2012, 13:13 [#1]:

Мы с радостью! Только не вижу, что дописывать.
"Digital Networked Knight"
min@y™

min@y™ (статус: Доктор наук), 25 июля 2012, 13:13 [#2]:

А зачем для этого писать программу? BAT-файла с командами, ИМХО, достаточно.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
POWER

POWER (статус: Посетитель), 25 июля 2012, 13:29 [#3]:

а как на bat сделать? я то знаю что такое бат но не знаю что писать и как писать?
POWER

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

DNK (статус: Студент), 25 июля 2012, 14:03 [#5]:

Грёбаный Экибезтуз! Учись оформлять вставку кода!

Обязательно мучиться с ping.exe? Почему не сделать через ICMP.DLL?
"Digital Networked Knight"
min@y™

min@y™ (статус: Доктор наук), 25 июля 2012, 14:13 [#6]:

Цитата (DNK):

Обязательно мучиться с ping.exe? Почему не сделать через ICMP.DLL?

Да необязательно... Можно заюзать TPing - компонент из пакета ICS.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
POWER

POWER (статус: Посетитель), 26 июля 2012, 10:19 [#7]:

min@y™, можно по подробнее?
min@y™

min@y™ (статус: Доктор наук), 26 июля 2012, 10:38 [#8]:

Цитата (POWER):

можно по подробнее?

Ну нафига? Качаешь пакет компонентов (например, вот отсюдова), устанавливаешь их в свою delphi. Среди прочих новых появившихся на палитре компонентов будет компонент TPing. А дальше открываешь демо-пример пингования с помощью этого компонента. У меня в компе он лежит вот тут d:\Компоненты\ICS\Delphi\Internet\PingTst.dpr, а где он у тебя будет, я не знаю. Смотришь внимательно исходник примера и вкуриваешь, как там чо работает.

У меня всё.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
POWER

POWER (статус: Посетитель), 26 июля 2012, 11:57 [#9]:

ок, спасибо, попробую потом напишу :))))

26 сентября 2012, 15:29: Вопрос закрыт (решение принял DNK): Я уж все глаза выплакал, чем всё кончилось.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:31
Выполнено за 0.03 сек.