Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.029 c
3-1098961483
BigError
2004-10-28 15:04
2004.11.28
Что-то никак не соображу как правильно сделать..


1-1100229943
vovchik
2004-11-12 06:25
2004.11.28
Расширение *.cmp


1-1100087158
Megabyte-CeerCop
2004-11-10 14:45
2004.11.28
Направильно запускается программа на CD через AutoRun


3-1099043189
Tolya
2004-10-29 13:46
2004.11.28
No address specified.


14-1100134186
Ihor Osov'yak
2004-11-11 03:49
2004.11.28
Что-то типа DelForEx, но для VS6





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский