Доступ к расшаренному ресурсу по логину и паролю
P.S. Гугл и Яндекс юзал, туда отсылать не нада! Перерыл весь Delphiworld - нет ничего...
Цитата: Slava_rec
Доброго времени суток всем! Подскажите КАК программно войти на запароленный сервак/сетевой_ресурс, находящийся в рабочей группе (НЕ домене). В общем как обойти вот это окошко (см. аттач).
P.S. Гугл и Яндекс юзал, туда отсылать не нада! Перерыл весь Delphiworld - нет ничего...
P.S. Гугл и Яндекс юзал, туда отсылать не нада! Перерыл весь Delphiworld - нет ничего...
Попробуйте как-нибудь так:
Код:
\\login:pass@servername\path
Цитата: Slava_rec
Доброго времени суток всем! Подскажите КАК программно войти на запароленный сервак/сетевой_ресурс, находящийся в рабочей группе (НЕ домене). В общем как обойти вот это окошко (см. аттач).
я не понял, че кулхацкер чтоли?
Цитата: Slava_rec
Доброго времени суток всем! Подскажите КАК программно войти на запароленный сервак/сетевой_ресурс, находящийся в рабочей группе (НЕ домене). В общем как обойти вот это окошко (см. аттач).
P.S. Гугл и Яндекс юзал, туда отсылать не нада! Перерыл весь Delphiworld - нет ничего...
P.S. Гугл и Яндекс юзал, туда отсылать не нада! Перерыл весь Delphiworld - нет ничего...
Делал такое, чтобы прога записывала данные на запароленную шару, сдела так :
Код:
function MakeDriveMapping(DriveLetter: string; DirectoryPath: string;
Username: string; Password: string; RestoreAtLogon: Boolean): DWORD;
var
NetResource: TNetResource;
dwFlags: DWORD;
begin
with NetResource do
begin
dwType := RESOURCETYPE_DISK;
if DriveLetter<>'' then
lpLocalName := PChar(DriveLetter)
else
lpLocalName := nil;
lpRemoteName := PChar(DirectoryPath);
lpProvider := nil;
end;
if (RestoreAtLogon) then
dwFlags := CONNECT_UPDATE_PROFILE
else
dwFlags := 0;
Result := WNetAddConnection2(NetResource, PChar(Password),
PChar(Username), dwFlags);
end;
Username: string; Password: string; RestoreAtLogon: Boolean): DWORD;
var
NetResource: TNetResource;
dwFlags: DWORD;
begin
with NetResource do
begin
dwType := RESOURCETYPE_DISK;
if DriveLetter<>'' then
lpLocalName := PChar(DriveLetter)
else
lpLocalName := nil;
lpRemoteName := PChar(DirectoryPath);
lpProvider := nil;
end;
if (RestoreAtLogon) then
dwFlags := CONNECT_UPDATE_PROFILE
else
dwFlags := 0;
Result := WNetAddConnection2(NetResource, PChar(Password),
PChar(Username), dwFlags);
end;
Это функция, которая дает доступ на шару, и вот как это примерно юзать :
try WNetCancelConnection2(PChar(network_path), 0, true ); except end; // это я вызывал вначле, на всякий случай, вдруг уже открыта шара
if (MakeDriveMapping('', network_path, network_name, network_pass, False) = 0) then begin
.....
end;