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

Вниз

Как проверить, доступен ли комп в локальной сети?   Найти похожие ветки 

 
AlexV   (2004-09-15 18:20) [0]

Здравствуйте!
--------------
У меня есть строка, представляющая собой сетевой путь
к файлу или папке, например \\diman\scorpio\projects.txt

Можно ли, особо не замудряясь, определить, есть ли доступ к
машине с именем diman ?

FileExists("\\diman\scorpio\projects.txt") работает долго.

Заранее благодарен. Михаил.


 
Rouse_ ©   (2004-09-15 20:21) [1]

NetShareEnum даст тебе информацию о типе доступа к ресурсу...


 
AlexV   (2004-09-21 12:04) [2]

К сожалению, NetShareEnum - это довольно сложная процедура.
Мне всего лишь надо проверить, включен ли комп с заданным именем.

А вообще, у меня есть сетевые пути файлов и папок, например
\\diman\folder1\
\\diman\folder1\sos.dat
\\diman\scorpio\projects.txt

Я хочу проверить доступны ли эти сетевые файлы и папки в текущий момент.
DirectoryExists("\\diman\folder1\") или
FileExists("\\diman\scorpio\projects.txt") долго работают, если компа с именем \\diman в сети нет. Видимо эти функции долго сеть опрашивают... или что-то вроде того. Когда эти функции выполняют проверку наличия файлов/папок по сети, то проц в это время загружен капитально.

Как бы сделать так, чтобы до DirectoryExists и FileExists проверить, есть ли вообще комп с именем \\diman в сети в данный момент?

Или в крайнем случае хочется уменьшить загрузку процессора во время опроса с пом. DirectoryExists и FileExists

Заранее благодарен.


 
Rouse_ ©   (2004-09-21 14:25) [3]

пингуй компьютер, если ответил - значит есть...


 
SergeySEM   (2004-09-21 15:17) [4]


> Rouse_ ©   (21.09.04 14:25) [3]
> пингуй компьютер, если ответил - значит есть...


Есть идеи как это сделать???


 
AlexV   (2004-09-21 17:35) [5]

Вот я тоже хотел спросить, как это сделать. Я конечно понимаю, что надо пингануть, но как это сделать наиболее просто из Дельфей?


 
Poirot ©   (2004-09-21 18:05) [6]

есть уж если просто подойти к этому вопросу целая компонента на Indy закладочках:)))


 
Rouse_ ©   (2004-09-21 20:36) [7]

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdRawBase, IdRawClient,
 IdIcmpClient;

type
 TForm1 = class(TForm)
   IdIcmpClient1: TIdIcmpClient;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
   procedure IdIcmpClient1Reply(ASender: TComponent;
     const AReplyStatus: TReplyStatus);
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 IdIcmpClient1.Host := "www.ya.ru";
 IdIcmpClient1.Ping;
end;

procedure TForm1.IdIcmpClient1Reply(ASender: TComponent;
 const AReplyStatus: TReplyStatus);
begin
 ShowMessage(Format("Пинг по адресу %s успешен.", [AReplyStatus.FromIpAddress]));
end;

end.


 
AlexV   (2004-09-21 22:29) [8]

Спасибо товарищи! Я уже и сам разобрался со своей проблемой.
Оказывается, если компа с именем diman нет в сети, то DirectoryExists("\\diman\"); мгновенно ответит, что нет такого каталога. Таким образом можно проверить, включен ли комп diman. А вот DirectoryExists("\\diman\folder1\folder2\folder3\") будет куда дольше работать, т.к. видимо тратится много времени чтобы зайти во все эти подпапки.



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

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

Наверх




Память: 0.48 MB
Время: 0.039 c
14-1100210653
Cheater
2004-11-12 01:04
2004.11.28
Bpwin


4-1097754180
pavel_guzhanov
2004-10-14 15:43
2004.11.28
WMI SDK


1-1100594952
hgd
2004-11-16 11:49
2004.11.28
Подскажите компонент или как?


1-1100242872
Alex P
2004-11-12 10:01
2004.11.28
Создание программы в виде процессса windows


1-1100192842
novice_man
2004-11-11 20:07
2004.11.28
Access violation at adress ...