|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Свободное место раздела с:\ на удаленном ПК
Ребят, существуют ли способы получение информации о логическом диске с:\ (используемое место и весь его объем) на удаленной машине в домене по открытой шаре? Пробовал в приложенном проекте кормить функций \\хх.хх.хх.хх\с в переменную, к сожалению не получилось. Информацию на эту тему найти не смог, скорее всего плохо искал =( Кто что знает поделитесь,пожалуйста.
Код:
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
|
|||
|
|||
Решил данный вопрос таким кодом
Код:
var FreeBytesAvailableToCaller: TLargeInteger; FreeSize: TLargeInteger; TotalSize: TLargeInteger; begin GetDiskFreeSpaceEx('\\хх.хх.хх.хх\c$', FreeBytesAvailableToCaller, Totalsize, @FreeSize); end; |