Главная » Подключение сетевого диска
Если возникла необходимость, чтобы Ваше приложение
самостоятельно подключало сетевой ресурс, то это можно сделать двумя способами:
вызвать стандартный диалог подключения ресурса либо использоваться следующий код.
Совместимость: delphi все версии

//Пример открытия стандартного диалога

procedure t form1.button1click(s ender: tobject);
begin
wnetconnectiondialog(handle,resourcetype_disk)
end;
//Так же можно подключить и принтер
procedure t form1.button1click(s ender: tobject);
begin
wnetconnectiondialog(handle,resourcetype_print)
end;
//либо можно использовать следующий код
procedure t form1.button2click(s ender: tobject);
var netresource: tnetresource;
begin { заполняем структуру tnetresource }
netresource.dwtype := resourcetype_disk;
netresource.lplocalname := 's:';
netresource.lpremotename := 'myserverpublic';
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 t form1.button2click(s ender: 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;
Автор: eber irigoyen (eberirigoyen@email.msn.com)
Источник: http://www.sources.ru/delphi/
Комментарий от vad (_rs_@mail2k.ru)
Для работы с сетевыми дисководами (и ресурсами типа lpt порта)
в win api 16 и win api 32 следующие функции:
1.Подключить сетевой ресурсwnetaddconnection(netresourse,password,localname:pchar):longint;
где netresourse - имя сетевого ресурса (например 'p166c')password - пароль на доступ к ресурсу
(если нет пароля, то пустая строка)
localname - имя, под которым сетевой ресурс будет отображен на данном компьютере
(например 'f:')
Пример подключения сетевого диска wnetaddconnection('p166c','','f:');
Функция возвращает код ошибки.
Для всех кодов предописаны константы, наиболее часто
используемые :
no_error - Нет ошибок - успешное завершение
error_access_denied - Ошибка доступа
error_already_assigned - Уже подключен.
Наиболее часто возникает при повторном вызове данной функции
с теми-же параметрами.
error_bad_dev_type - Неверный тип устройства.
error_bad_device - Неверное устройство указано в localname
error_bad_net_name - Неверный сетевой путь или сетевое имя
error_ext ended_error - Некоторая ошибка сети
(см. функцию wnetgetlasterror для подробностей)
error_invalid_password - Неверный пароль
error_no_network - Нет сети
2.Отключить сетевой ресурс
wnetcancelconnection(localname:pchar;forsemode:boolean):longint;
гдеlocalname - имя, под которым сетевой ресурс был подключен к данному компьютеру
(например 'f:')
forsemode - режим отключения :false - корректное отключение.
Если отключаемый ресурс еще используется, то отключения не произойдет
(например, на сетевом диске открыт файл)
true -скоростное некорректное отключение.
Если ресурс используется, отключение все равно произойдет и межет
привести к любым последствиям (от отсутствия ошибок до глухого повисания)
Функция возвращает код ошибки.
Для всех кодов предописаны константы, наиболее часто используемые :
no_error - Нет ошибок - успешное завершение
error_device_in_use - Ресурс используется
error_ext ended_error - Некоторая ошибка сети
(см. функцию wnetgetlasterror для подробностей)
error_not_connected - Указанное ус-во не является сетевым
error_open_files - На отключаемом сетевом диске имеются открытые файлы и
параметр
forsemode=falseРекомендация: при отключении следует сначала попробовать
отключить устройство с параметром forsemode=false и при ошибке типа
error_open_files выдать запрос с сообщением о том,
что ус-во еще используется и предложением отключить принудительно,
и при согласии пользователя повторить вызов с forsemode=true Категория: Языки программирования | Просмотров: 198 Мфу panasonic цены. Мфу panasonic KX-MB783dr leonard.