Имя: Пароль:
IT
 
Подключить программно сетевой диск через Delphi
0 Godofsin
 
18.10.11
06:17
Пытаюсь подключить сетевой диск из сетевого хранилища.
Код:
Procedure AddDisk;
Var
nr: NETRESOURCE;
lpLogin, lpPassword:PChar;
Begin
ZeroMemory (@nr, SizeOf (nr));
lpLogin:='Sin';
lpPassword:='n172mt';
nr.dwType := RESOURCEType_DISK;
nr.lpLocalName := 'M:';
nr.lpRemoteName := '\\LANStorage';
nr.lpProvider := Nil;
If WNetAddConnection2 (nr,lpLogin, lpPassword, CONNECT_UPDATE_PROFILE) <> NO_ERROR
Then ShowMessage ('Ошибка при подключении диска.');
End;


Ну и не взлетает... "Ошибка при подключении диска"
1 Godofsin
 
18.10.11
07:15
По ходу, что то не так именно при подключении к сетевому хранилищу. Подключая расшаренную папку на сервере - все ОК.
2 Chai Nic
 
18.10.11
07:17
А с чего вы вообще взяли, что "\\LANStorage" это сетевой диск? Это имя сервера вообще-то.
3 Godofsin
 
18.10.11
07:21
(2) С того, что я сам назначал это имя сетевому хранилищу(NAS).
Да даже сделай я так:
nr.lpRemoteName := '\\LANStorage\Обмен';
Не взлетает.
Папка там есть, права настроены. Средствами Windows,к примеру, смело получаю доступ к этой папке. И подключаю ее, как сетевой диск.
4 Godofsin
 
18.10.11
07:23
Возвращаемая ошибка:
Ошибка 1920. "ERROR_CANT_ACCESS_FILE". The file cannot be accessed by the system.
5 Godofsin
 
18.10.11
07:24
+(4)Я расцениваю эту ошибку, как "отказ доступа к файлу/папке".
А вот почему, не могу понять.
6 Капитан Смоллет
 
18.10.11
07:25
7 Godofsin
 
18.10.11
07:30
(6) Это не подходит
8 Капитан Смоллет
 
18.10.11
07:31
(7) http://delphi-faq.zoxt.net/v69.htm

RESOURCETYPE_DISK
9 Chai Nic
 
18.10.11
07:33
(3) Во-первых, имя сервера - это не имя ресурса. Это очевидно. А во-вторых, лучше не используй не-латиницу в имени ресурса.
А на "средства виндовс" ссылаться не надо - там бутерброд из кучи протоколов, вполне возможно что и не WNetAddConnection2 там используется.
10 Godofsin
 
18.10.11
07:49
(9) По ходу ты прав. Сменил на:
nr.lpRemoteName := '\\LANStorage\Video_Record';
Теперь ошибка 1326. Не проходит авторизацию. Логин и пароль точно правильные.
11 Chai Nic
 
18.10.11
07:51
Авторизация в домене? Указывай имя пользователя в виде "<имядомена>\<имяпользователя>"
12 Godofsin
 
18.10.11
07:57
(11) Без домена. В настройках сетевого хранилища заводятся свои пользователи, для них указываются права на доступ к папкам. Мне кажется, что-то с этим связано.
13 Chai Nic
 
18.10.11
08:12
(12) А если подключать из командной строки через net use - подключает?
14 Godofsin
 
18.10.11
08:14
(13) Щас попробую.
15 Godofsin
 
18.10.11
10:35
(13)
C:\Users\SiN>net use \\LANStorage n172mt /USER:sinpk\Sin
Команда выполнена успешно.

При этом:
C:\Users\SiN>net use X: \\LANStorage n172mt /USER:sinpk\Sin
Системная ошибка 1920.

Доступ к этому файлу из системы отсутствует.
16 Godofsin
 
18.10.11
10:44
Все, всем спасибо, вопрос решен!
17 Chai Nic
 
18.10.11
12:46
(16) Хорошим тоном считается вкратце описать в чем была проблема и как её решили..