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

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

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

Delphi.int.ru Expert

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

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

#   

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


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

Подробнее »



Вопрос # 1 445

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!

Прошу подсказать, как подключить и отключить сетевой диск программно!

MAcK Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: MAcK (статус: Посетитель)
Вопрос отправлен: 25 марта 2008, 11:53
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Feniks

Здравствуйте, MAcK!
Это можно сделать двумя способами: вызвать стандартный диалог подключения ресурса либо использоваться код :

//Пример открытия стандартного диалога 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
WNetConnectionDialog(Handle,RESOURCETYPE_DISK) 
end; 
 
//Так же можно подключить и принтер 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
WNetConnectionDialog(Handle,RESOURCETYPE_PRINT) 
end; 
 
//либо можно использовать следующий код 
procedure TForm1.Button2Click(Sender: TObject); 
var 
NetResource: TNetResource; 
begin 
{ заполняем структуру TNetResource } 
NetResource.dwType       := RESOURCETYPE_DISK; 
NetResource.lpLocalName  := 'S:'; 
NetResource.lpRemoteName := '\\myserver\public'; 
NetResource.lpProvider   := ''; 
 
{ подключаем сетевой ресурс, используя структуру TNetResource } 
If ( WNetAddConnection2(NetResource, 
                        '', {Password (if needed) or empty} 
                        '', {User name (if needed) or empty} 
                        CONNECT_UPDATE_PROFILE)<>NO_ERROR) Then 
    Raise Excepcion.Create('unable to map drive') 
//так же существуют другие константы для определения возникшей ошибки 
//ERROR_ACCESS_DENIED, ERROR_ALREADY_ASSIGNED, и т.д. 
end; 
 
//так же можно и отключить сетевой ресурс... 
procedure TForm1.Button2Click(Sender: TObject); 
begin 
if WNetCancelConnection2( 'S:',0,TRUE) <> NO_ERROR then 
   Raise Exception.create('Error disconnecting map drive'); 
//соответственно можно использовать другие константы для определения ошибки
//ERROR_DEVICE_IN_USE, ERROR_NOT_CONNECTED, и т.д. 
end;
Описание команд смотрите ниже в Приложении.
Желаю удачи.

Приложение:
  1.  
  2. WNetAddConnection(NetResourse,Password,LocalName:PChar):longint;
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20. WNetCancelConnection(LocalName:PChar;ForseMode:Boolean):Longint;
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  


Ответ отправил: Feniks (статус: Бакалавр)
Время отправки: 25 марта 2008, 12:22


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

Мини-форум пуст.

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

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 ноября 2017, 08:39
Выполнено за 0.03 сек.
Рейтинг@Mail.ru