Russian Qt Forum

Qt => Работа с сетью => Тема начата: shaft_s от Февраль 08, 2008, 23:21



Название: Подключение сетевых дисков
Отправлено: shaft_s от Февраль 08, 2008, 23:21
Имеется сеть windows с кучей сетевых дисков, каждый день пк перезагружается но пользователи ленятся вводить пороль (к сетевым дискам). Вопрос как программно подключить диск и ввести пароль? QT 4.2.2, win2000.


Название: Re: Подключение сетевых дисков
Отправлено: Пантер от Февраль 09, 2008, 10:53
Можно на WinApi с использованием функции WNetAddConnection2. Если нужно подробнее, могу скинуть исходники, правда под BCB6.


Название: Re: Подключение сетевых дисков
Отправлено: c00ker от Февраль 11, 2008, 16:30
можно и проще, через system (QProcess?) выполнить net use, формат: NET USE {имя_устройства | *} [пароль | *] /HOME


Название: Re: Подключение сетевых дисков
Отправлено: Пантер от Февраль 11, 2008, 19:22
Оно то проще, но представь, что у тебя диск в данный момент не доступен... А через винапи можно проверить возврат (true или false) и сделать сколь угодно попыток пока не получится. Хотя это тоже ИМХО.


Название: Re: Подключение сетевых дисков
Отправлено: shaft_s от Февраль 12, 2008, 20:05
сделал через WNetAddConnection2 других вариантов пока не нашел, но привязываться к win32api особого желания нет. Спасибо за помощь!!!


Название: Re: Подключение сетевых дисков
Отправлено: Deiv от Февраль 12, 2008, 20:36
сделал через WNetAddConnection2 других вариантов пока не нашел, но привязываться к win32api особого желания нет. Спасибо за помощь!!!

Пардон. Способ програмного подключения удаленных ресурсов к машине зависит от реализации клиентской части протокола, в данном случае cifs/smb.
Для винды это относительно просто. Там одна реализация, и она поддерживается самой ОС. Чтобы ею воспользоваться нужно работать с  winapi.
В линуксе например таких реализаций несколько. Поэтому здесь есть выбор. В маке, наверное, аналогично линуксу. Причем, что в линуксе, что в маке нет понятия диска (имею ввиду С: D: и т.д.). Там диски существует только как физические устройства, на которых могут быть разделы и.т.п и т.д.. Все разделы объединены в одно дерево. И при подключении расшаренной директории не создается какойто отдельный диск, а на этом дереве вырастает ещё одна ветка.

ROOT
 |->C
 |    |->Program~1
 |    `->Windows
 |->D
 |    |->Distrib
 |    `->Mp3
 `->Share_Comp2

При работе с виндой выбора вообще нет. Только "winapi". Ну ещё "net use".