Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.14;
Скачать: CL | DM;

Вниз

Мастера нужна помощь ! ( комманды Msdos)   Найти похожие ветки 

 
and_1 ©   (2002-11-28 21:12) [0]

Здравствуйте Мастера ! Решил я создать прогу которая упростит работу в сети!
Перейдем к описанию проги:
Ггрубо говоря все будет выглядеть так: просто кликаешь бутон и на мемке появляется инфа(взависимости что за кнопка)

1)
Будет несколько вкладок(ping,net,nbtstat...)
Вкладка ping. внизу эдит где должен располагаться IP адресс и сама конечно же кнопка пинг. Сколько раз я не спрашивал всегда получал непонятные ответы и не мог въехать в это!
Не могли бы вы написать код который идет после процедуры нажатия на кнопки пинг. (примечания: IP записывается эдите, а результаты в мемке появляются)

2)
В MsDos есть комманда net send <имя компа или IP> <мессага>
Хотелось бы тоже самое сделать на делфе! Как это сделать ?
Ситуация аналогичная, все просто: мемка, эдит(IP или имя компа)
и буттон.

3) И наконец такая комманда как nbtstat с параметром -a <IP> чтоб узнать имя компа.
Все также Мемка, эдит и буттон.

Заранее благодарен. Спасибо.


 
and_1 ©   (2002-11-28 22:33) [1]

Вот пинг я нашел в статьях!!! Но появился вопрос!!! Вот код:

***
pHostEn := gethostbyname( "delphi.mastak.com");
error := GetLastError();
if (error <> 0) then
begin
Memo1.SetTextBuf("Error in call to"+
"gethostbyname().");
Memo1.Lines.Add("Error code: "+IntToStr(error));
Exit;
end;
***

А я хотел бы, чтоб можно было вводить имя в эдите! пробовал вот так:

***
pHostEn := gethostbyname( "edit1.text");
error := GetLastError();
if (error <> 0) then
begin
Memo1.SetTextBuf("Error in call to"+
"gethostbyname().");
Memo1.Lines.Add("Error code: "+IntToStr(error));
Exit;
end;
***

Но не выходит в чем проблема ? подскажите как сделать так чтобы имя бралось из текста эдита!!! заранее благодарен!


 
and_1 ©   (2002-11-28 22:36) [2]

В статьях нарыл про пинг! Тока вопрос! Как сделать чтобы имя компа бралось из эдита ????
***
pHostEn := gethostbyname( "delphi.mastak.com");
error := GetLastError();
if (error <> 0) then
begin
Memo1.SetTextBuf("Error in call to"+
"gethostbyname().");
Memo1.Lines.Add("Error code: "+IntToStr(error));
Exit;
end;
***

Пробовал вот так и не получилось!

***
pHostEn := gethostbyname( "edit1.text");
error := GetLastError();
if (error <> 0) then
begin
Memo1.SetTextBuf("Error in call to"+
"gethostbyname().");
Memo1.Lines.Add("Error code: "+IntToStr(error));
Exit;
end;
***

Как сделать ??? помогите мастера плз!


 
and_1 ©   (2002-11-28 22:37) [3]

В статьях нарыл про пинг! Тока вопрос! Как сделать чтобы имя компа бралось из эдита ????
***
pHostEn := gethostbyname( "delphi.mastak.com");
error := GetLastError();
if (error <> 0) then
begin
Memo1.SetTextBuf("Error in call to"+
"gethostbyname().");
Memo1.Lines.Add("Error code: "+IntToStr(error));
Exit;
end;
***

Пробовал вот так и не получилось!

***
pHostEn := gethostbyname( "edit1.text");
error := GetLastError();
if (error <> 0) then
begin
Memo1.SetTextBuf("Error in call to"+
"gethostbyname().");
Memo1.Lines.Add("Error code: "+IntToStr(error));
Exit;
end;
***

Как сделать ??? помогите мастера плз!


 
and_1 ©   (2002-11-28 22:38) [4]

сори за три ответа.


 
VideoLord ©   (2002-11-28 23:11) [5]

Может стоит так сделать :-)

pHostEn := gethostbyname(edit1.text);
error := GetLastError();
if (error <> 0) then
begin
Memo1.SetTextBuf("Error in call to"+
"gethostbyname().");
Memo1.Lines.Add("Error code: "+IntToStr(error));
Exit;
end;


 
videolord ©   (2002-11-28 23:15) [6]

А по поводу NetSend и NbtStat придется разбираться в протоколе NetBEUI (NetBIOS). Если не хочется копаться в протоколе, то можно сделать через ж..у, но работать тоже будет :-)

Когда мне нужно было такое сделать, я просто из своей проги на делфях вызывал (типа WinExec или CreateProcess) например:

nbtstat.exe -a 192.168.0.1 > aaa.txt

Ждал завершения процесса

WaitForSingleObject()

и смотрел, что написано в aaa.txt

Читай хелп по вышеуказанным функциям и все легко сделаешь...


 
Opuhshii ©   (2002-11-29 08:09) [7]

2and_1 © (28.11.02 21:12)
в MsDos нет комманды net


 
alexteam ©   (2003-01-15 13:08) [8]

команды net нет
а команда net send есть
вот пример отправки сообщения "ты труп" на машину с ip 192.168.0.2 из под cmd
c:\net send 192.168.0.2 ты труп

{прикол в том что на 2-й машине (действие разворачивалось в комп клубе) чувак играл в counter-strike ...... было смешно }


 
Wonder ©   (2003-01-15 13:18) [9]

А Windows какая?


 
Zzzzzz   (2003-01-27 16:00) [10]

Чтобы в Pinge адрес брался из Editа необходимо его перевести в PChar, т.е правильно будет
pHostEn := gethostbyname(PChar(edit1.text));


 
NickBat ©   (2003-01-27 17:40) [11]

Вообще-то net send это не команда ДОС, а директива командной строки Виндоус. Вот только не помню начиная с какой версии.
В Вин2000 отправить сообщение проще простого:

net send comp1 "Тра-ля-ля!"


 
GobliNGuT ©   (2003-01-27 21:44) [12]

А net send это команда NTVDM (не DOS!!!), и соответственно если ты пишешь под 9х то ничего не получится. Команда работает только на NT системах. По поводу версий - по-моему она была еще на 3-й NT...
NickBat: Это команда для отправки административных сообщений.
А под 9х - через mailslot делается ... нужен пример-пиши


 
Ila   (2003-02-20 11:58) [13]

Комманда как nbtstat с параметром -a <IP> чтоб узнать имя компа.
Можно так (узнать имя компа)

uses Winsock,......;

function My_GetHostName(Address:String):String;
var wVersionRequested : WORD;
lwsaData : WSAData;
pHostEn : PHostEnt;
destAddress : In_Addr;
pAddress:Pointer;
Err:Integer;
begin
Result:="";
wVersionRequested:=MakeWord(1,1);
Err:=WSAStartup(wVersionRequested,lwsaData);
if (Err <> 0) then
begin
Result:=("Error in call to "+"WSAStartup"+IntToStr(Err));
Exit;
end;
try
if (Trim(Address)="") then
Exit;
destAddress.S_addr:=inet_addr(PChar(Address));
pAddress:=@destAddress;
pHostEn:=gethostbyaddr(pAddress,SizeOf(destAddress),AF_INET);
if (pHostEn=nil) then
begin
Err:=WSAGetLastError;
if (Err <> 0) then
Exit;
end;
Result:=String(pHostEn.h_name);
finally
WSACleanup();
end;
end;


 
Anatoly Podgoretsky ©   (2003-02-20 12:15) [14]

NickBat © (27.01.03 17:40)
Начнем с того, что данная команда была в ДОС еще до появления Виндоус, это относится к LanMan



Страницы: 1 вся ветка

Текущий архив: 2003.04.14;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.015 c
14-44456
Корвин
2003-03-30 16:52
2003.04.14
Всем хорошим людям просьба..


14-44434
Merlin
2003-03-28 13:42
2003.04.14
Переезд сайта


14-44452
kostya2000
2003-03-25 20:01
2003.04.14
Люди, загадка:


1-44238
VadimS
2003-04-02 10:30
2003.04.14
Текст кодировки DOS в Windows кодировку


1-44181
Антон
2003-04-03 18:37
2003.04.14
освобождение памяти