Как подключить и отключить сетевые диски |
|
Написал Ярослав Гасов
|
19.10.2009 |
Для работы с сетевыми дисководами (и ресурсами типа LPT порта) в WIN API 16 и WIN API 32 следующие функции: Подключить сетевой ресурс:
WNetAddConnection(NetResourse, Password, LocalName: PChar): longint;
где
NetResourse - имя сетевого ресурса (например '\\P166\c') Password - пароль на доступ к ресурсу (если нет пароля, то пустая строка) LocalName - имя, под которым сетевой ресурс будет отображен на данном компьютере (например 'F:') Пример подключения сетевого диска:
WNetAddConnection('\\P166\C', '', 'F:');
Функция возвращает код ошибки. Для всех кодов предописаны константы, наиболее часто используемые:
NO_ERROR - Нет ошибок - успешное завершение ERROR_ACCESS_DENIED - Ошибка доступа ERROR_ALREADY_ASSIGNED - Уже подключен. Наиболее часто возникает при повторном вызове данной функции с теми-же параметрами. ERROR_BAD_DEV_TYPE - Неверный тип устройства. ERROR_BAD_DEVICE - Неверное устройство указано в LocalName ERROR_BAD_NET_NAME - Неверный сетевой путь или сетевое имя ERROR_EXTENDED_ERROR - Некоторая ошибка сети (см. функцию WNetGetLastError для подробностей) ERROR_INVALID_PASSWORD - Неверный пароль ERROR_NO_NETWORK - Нет сети
Отключить сетевой ресурс
WNetCancelConnection(LocalName: PChar; ForseMode: Boolean): Longint;
где
LocalName - имя, под которым сетевой ресурс был подключен к данному компьютеру (например 'F:') ForseMode - режим отключения : False - корректное отключение. Если отключаемый ресурс еще используется, то отключения не произойдет (например, на сетевом диске открыт файл) True - скоростное некорректное отключение. Если ресурс используется, отключение все равно произойдет и может привести к любым последствиям (от отсутствия ошибок до глухого повисания) Функция возвращает код ошибки. Для всех кодов предописаны константы, наиболее часто используемые:
NO_ERROR - Нет ошибок - успешное завершение ERROR_DEVICE_IN_USE - Ресурс используется ERROR_EXTENDED_ERROR - Некоторая ошибка сети (см. функцию WNetGetLastError для подробностей) ERROR_NOT_CONNECTED - Указанное ус-во не является сетевым ERROR_OPEN_FILES - На отключаемом сетевом диске имеются открытые файлы и параметр ForseMode=false Рекомендация: при отключении следует сначала попробовать отключить ус-во с параметром ForseMode=false и при ошибке типа ERROR_OPEN_FILES выдать запрос с сообщением о том, что ус-во еще используется и предложением отключить принудительно, и при согласии пользователя повторить вызов с ForseMode=true. Источник: http://softnewsportal.ru/forum/showthread.php?p=4600
|