Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Delphi и Lazarus


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

Орловский Дмитрий
Статус: Академик
Рейтинг: 4413
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 2644
∙ повысить рейтинг »
cradlea
Статус: Практикант
Рейтинг: 1498
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Delphi и Lazarus

Номер выпуска:1591
Дата выхода:14.04.2011, 16:00
Администратор рассылки:Киселёва Алёна aka Verena (Профессор)
Подписчиков / экспертов:254 / 182
Вопросов / ответов:1 / 1

Вопрос № 182785: Уважаемые эксперты! Нуждаюсь в вашей помощи, при написании кода программы... Нужно написать программу, которая разрывает сетевое подключение. Используйте функцию WNetCancelConnection. теория в приложении || || || ∨...



Вопрос № 182785:

Уважаемые эксперты! Нуждаюсь в вашей помощи, при написании кода программы...

Нужно написать программу, которая разрывает сетевое подключение. Используйте функцию WNetCancelConnection.

теория в приложении
||
||
||

Отправлен: 09.04.2011, 15:33
Вопрос задал: Андреев Дмитрий Фёдорович (Посетитель)
Всего ответов: 1
Страница вопроса »


Отвечает sir Henry (Старший модератор) :
Здравствуйте, Андреев Дмитрий Фёдорович!

Если говорить об общем принципе работы, то, к примеру, на каком-то компьютере есть какой-то каталог, который виден в сети. Его, этот каталог, нужно подключить к другому компьютеру в виде отдельного логического диска. Получается что-то вроде этого:
Код:
If WNetAddConnection('\\ДругойКомпьютер\СетевойРесурс', '?Пароль_доступа?', 'Z:')=NO_ERROR Then
ShowMessage('Сетевой ресурс подключён как диск Z')
Else
ShowMessage(SysErrorMessage(GetLastError));

-----
Небольшие комментарии к подключению сетевого ресурса.
Если Вы работаете в домене Windows, то вместо второго параметра это й функции можно подставлять любую строку или вообще NIL. Каждый пользователь в домене получает при регистрации на контроллере домена свой идентификатор безопасности, с которым потом можно обратится к любому ресурсу домена, к которому есть доступ для данного пользователя.
Параметр "Пароль_доступа" является пережитком предыдущих одноранговых сетей Windows, когда в них не было единого сервера регистрации пользователей, а ресурсы выделялись для всех подряд, но, с целью повышения безопасности их использования, на эти ресурсы можно было наложить дополнительный пароль. Т.е. тот, кто знает пароль, может подключиться к ресурсу. Так было в сетях Windows 3.х, Windows 95\98\ME.
----
Теперь, когда Вы знаете имя логического диска, куда подключён сетевой ресурс, его можно отключить:
Код:
WNetCancelConnection('Z:', True);


Тестовую программу составить не сложно. Берёте форму, кидаете на неё две кнопки. Одна кнопка будет заведовать подключением к сетевому ресурсу, а вторая - отключением. В событие OnClick кнопки подключения помещаете код из первого окошка, только в функции подключения надо указать реальное название удалённого компьютера и реальное название его сетевого ресурса. После нажатия на кнопку подключения произойдёт подключения ресурса в качестве локального диска "Z:" (или выскочит окошко с сообщением, почему подключение не удалось), после чего к нему можно обращаться так же, как к локальному диску.
В событие OnClick второй кнопки помещаете код из второго окошка. Второй параметр функции отключения означает, что сетевой ресурс будет отключён от буквы локального диска в принудительном порядке, даже если с н его был открыт (и не закрыт) какой-нибудь файл. Если же поставить вторым параметром False, то диск не удастся отключить до тех пор, пока все файлы с этого ресурса не будут закрыты. Т.е. безопасное отключение диска можно написать таким образом:
Код:
If WNetCancelConnection('Z:', False)<>NO_ERROR Then
ShowMessage(SysErrorMessage(GetLastError));

Если отключения не произойдёт, то будет выведено окно с сообщением, по какой причине не произошло отключение.
-----
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

Ответ отправил: sir Henry (Старший модератор)
Ответ отправлен: 11.04.2011, 15:02
Номер ответа: 266635
Россия, Красноярск

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 266635 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.



    В избранное