скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Как подключить и отключить сетевые диски



Звонит один мужик своему интернет-провайдеру и говорит оператору:
- Алло, здраствуйте, у меня проблема! Я не могу зайти в интернет!
- А в чем, собственно говоря, дело?
- А у меня нет компьютера.

Для работы с сетевыми дисководами (и ресурсами типа LPT порта) в WIN API 16 и WIN API 32 следующие функции:

Подключить сетевой ресурс:


WNetAddConnection(NetResourse, Password, LocalName: PChar): longint;

где

  1. NetResourse - имя сетевого ресурса (например '\\P166\c')
  2. Password - пароль на доступ к ресурсу (если нет пароля, то пустая строка)
  3. 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; 

где

  1. LocalName - имя, под которым сетевой ресурс был подключен к данному компьютеру (например 'F:')
  2. 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.






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook