Czy da się zapisyac plik na dysku sieciowym bez mapowania dysku sieciowego ?
Znam nazwę serwera sieciowego, nazwę użytkownika i hasło i chciałbym zapisać na dysku sieciowym plik.
Chciałbym też nie wychodzić poza moja aplikację (np. standardowe okna Windows gdzie wprowadza się użytkownika i hasła)
Rozwianie na podstawie dyskusji w wątku
funkcje :
WNetAddConnection2A
WNetCancelConnection2
var
f:TMemoryStream;
buf: integer;
resource: TNetResource;
result_conn, retval : DWORD;
begin
resource.dwType := RESOURCETYPE_DISK;
resource.lpLocalName := 0;
resource.lpRemoteName := '\\serwer\pliki';
resource.lpProvider := 0;
result_conn := WNetAddConnection2(resource,'PASS','USERNAME', CONNECT_TEMPORARY);
if result_conn = NO_ERROR then
begin
try
f:=TMemoryStream.Create;
buf := 1234; // jakis dane
f.Write(buf, SizeOf(buf));
try
f.SaveToFile('\\serwer\pliki\test2.raw');
except
on e: Exception do
begin
ShowMessage('Exception->'+e.Message);
end;
end;
finally
f.Free;
end;
// cancel connection
retval := WNetCancelConnection2('\\serwer\pliki, 0, TRUE);
end
else
begin
if result_conn = ERROR_LOGON_FAILURE then
begin
ShowMessage('wrong user password! TO DO !');
end;
end;