Ребят, существуют ли способы получение информации о логическом диске с:\ (используемое место и весь его объем) на удаленной машине в домене по открытой шаре? Пробовал в приложенном проекте кормить функций \\хх.хх.хх.хх\с в переменную, к сожалению не получилось. Информацию на эту тему найти не смог, скорее всего плохо искал =( Кто что знает поделитесь,пожалуйста.
Код:
function GetDiskSize(drive: Char; var free_size, total_size: Int64): Boolean;
var
RootPath: array[0..4] of Char;
RootPtr: PChar;
current_dir: string;
begin
RootPath[0] := Drive;
RootPath[1] := ':';
RootPath[2] := '\';
RootPath[3] := #0;
RootPtr := RootPath;
current_dir := GetCurrentDir;
if SetCurrentDir(drive + ':\') then
begin
GetDiskFreeSpaceEx(RootPtr, Free_size, Total_size, nil);
// this to turn back to original dir
SetCurrentDir(current_dir);
Result := True;
end
else
begin
Result := False;
Free_size := -1;
Total_size := -1;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
free_size, total_size: Int64;
free_size2, total_size2:real;
a:integer;
p:Pchar;
begin
try
if GetDiskSize(DriveComboBox1.Drive, free_size, total_size) then
begin
a:=1024*1024*1024;
free_size2:=free_size/a;
total_size2:=total_size/a;
ShowMessage('Раздел '+DriveComboBox1.Drive+':\'+#13+'Свободно =' + FloatToStrF(free_size2,ffFixed,5,2)+' GB' +#13+'Всего='+FloatToStrF(total_size2,ffFixed,5,2)+' GB')
end
else
application.Terminate
except
application.Terminate
end; end;
HDD.7z