Главная страница
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-1099242760
DillerXX
2004-10-31 20:12
2004.11.28
У меня сгорел винт :(((((((


3-1099288220
NewDelpher
2004-11-01 08:50
2004.11.28
Нет соединения с MS SQL-2000


1-1100176487
AndrewK
2004-11-11 15:34
2004.11.28
Работа с переменными в FastScript


14-1100140195
VuDZ
2004-11-11 05:29
2004.11.28
Я вернулся


1-1100259968
Mishenka
2004-11-12 14:46
2004.11.28
Нужно вывести на форму рисунок из ImageList.