|
Вопрос # 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
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|