| 
| 
 | Вопрос # 1 445/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!
 Прошу подсказать, как подключить и отключить сетевой диск программно!
 
|  |   Вопрос задал: 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;Описание команд смотрите ниже в Приложении.Желаю удачи.
 Приложение:Переключить в обычный режим  WNetAddConnection(NetResourse,Password,LocalName:PChar):longint;                 WNetCancelConnection(LocalName:PChar;ForseMode:Boolean):Longint;              
|  | Ответ отправил: Feniks (статус: Бакалавр)Время отправки: 25 марта 2008, 12:22
 
 |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |