Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Доступ к сетевым ресурсам [D6, Win95/98, WinME]


TVV ©   (2003-05-17 16:14:00) 

Как открыть(закрыть) доступ сетевым ресурсам с соответствующими парамерами (сетевое имя, пароль и тд.) из своей программы.


Мое имя   (2003-06-02 18:46:00) [1]


> Спасибо, Lord Warlock, уж не знаю как и отблагодарить...
>

саблю какую-нить подарить.. раритетную. или кинджял там какой...


malamba   (2003-06-02 10:36:00) [2]

Нашел!!!!
Теперь для будущих поколений можно пояснить:
У меня было то же самое, за исключением:
в описании WNetAddConnection2 купился на фразу "пустой пароль", "пустой логин", и ставил не nil, а " " -
соответственно ошибка и выдавалась.

Спасибо, Lord Warlock, уж не знаю как и отблагодарить...


Lord Warlock   (2003-06-02 10:23:00) [3]

Так у тебя ресурсы отдельно запаролены или пользователь имеет доступ. Когда подключаешь вручную, пароль не спрашивается?. Если нет, то должно работать такое: (в общем аналог L ©)

const DiskT: array [0..MAX_PATH] of Char="\\Сервер\Расшаренный каталог";
var NetRes: NETRESOURCE;

begin
NetRes.dwType:=RESOURCETYPE_DISK;
NetRes.lpRemoteName:=DiskT;
NetRes.lpLocalName:="T:";
//Net Drives
if WNetAddConnection2(NetRes,nil,nil,CONNECT_UPDATE_PROFILE) in [NO_ERROR,ERROR_ALREADY_ASSIGNED] then
Writeln("Net Drive "T" Assigned")
else
Writeln("ERROR! Can`t assign network drive "T"");


malamba   (2003-06-02 10:15:00) [4]

Нет, именно на 2000 Pro при установках по умолчанию и выдается ошибка 5.
Не сталкивался с таким?
Моежт плюнуть на все с горя и как-нибудь использовать Shell и Net use?


Lord Warlock   (2003-06-02 10:06:00) [5]

Как вижу, используешь форточку 95-98. Там возможено придется указывать и имя пользователя и пароль. Я работаю на Nt,2000 все подключается без проблем.


malamba   (2003-06-02 09:58:00) [6]

А если по умолчанию - т. е. оставить пустые места, чттобы соединение открывалось на любой машине с соответствущим логином-паролем?
Вот по умолчанию чего-то не идет...


Lord Warlock   (2003-06-02 09:51:00) [7]

Если посылаешь <Пароль>, то надо посылать и <ИмяПользователя>.

Из справки:

If lpUserName is NULL, the function uses the default user name.

те если залогиненный юзер и юзер, чей пароль ты указываешь для подключения - разные, его имя нужно указывать.

Err:=WNetAddConnection2(nw,<Пароль>,<ИмяПользователя>,0)


malamba   (2003-06-02 09:44:00) [8]

>Err:=WNetAddConnection2(nw,<Пароль>,nil,0)

А у меня выдает оишбку 5 - доступ запрещен, хотя ручками я ресурс открываю прекрасно.
Что это может быть?


L   (2003-05-18 22:51:00) [9]

var
nw:TNetResource;

begin
nw.dwType:=RESOURCETYPE_DISK;
nw.lpLocalName:=nil;
nw.lpRemoteName:=PChar("\\"+<Комп в сети>+"\"+<Ресурс>");
nw.lpProvider:=nil;
Err:=WNetAddConnection2(nw,<Пароль>,nil,0)
If Err=NO_ERROR then
begin
...
end;
Примечание: так, как написано, ты будешь к pесуpсу обpащаться как к "\\<Комп в сети>\<Ресурс>". если хочешь подключить сетевой pесуpс как локальный диск -- меняй nw.lpLocalName.
Когда(если) закончишь юзать сетевой диск, ставь WNetCancelConnection2.


Наверх

Титульная страница Поиск, карта сайта Написать письмо