Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.08.2015, 10:02
Alekdmitr Alekdmitr вне форума
Прохожий
 
Регистрация: 26.08.2015
Сообщения: 2
Версия Delphi: Delphi 2010
Репутация: 10
По умолчанию Свободное место раздела с:\ на удаленном ПК

Ребят, существуют ли способы получение информации о логическом диске с:\ (используемое место и весь его объем) на удаленной машине в домене по открытой шаре? Пробовал в приложенном проекте кормить функций \\хх.хх.хх.хх\с в переменную, к сожалению не получилось. Информацию на эту тему найти не смог, скорее всего плохо искал =( Кто что знает поделитесь,пожалуйста.
Код:
 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

Последний раз редактировалось Alekdmitr, 27.08.2015 в 10:11.
Ответить с цитированием
  #2  
Старый 27.08.2015, 14:29
Alekdmitr Alekdmitr вне форума
Прохожий
 
Регистрация: 26.08.2015
Сообщения: 2
Версия Delphi: Delphi 2010
Репутация: 10
По умолчанию

Решил данный вопрос таким кодом
Код:
var
  FreeBytesAvailableToCaller: TLargeInteger;
  FreeSize: TLargeInteger;
  TotalSize: TLargeInteger;
begin
  GetDiskFreeSpaceEx('\\хх.хх.хх.хх\c$',
    FreeBytesAvailableToCaller,
    Totalsize,
    @FreeSize);
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:01.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter