Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Физ. диски

499
30 сентября 2007 года
madjahed
149 / / 14.01.2004
Как узнать размер и количество физических дисков в Windows? Именно физических, не логических.
261
30 сентября 2007 года
ahilles
1.5K / / 03.11.2005
что первым пришло в голову:
для определения количества дисков пытаться открывать ccылку \\.\PhysicalDriveN если открылось то он существует

Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  h:THandle;
  c:integer;
begin

  c:=0;
  repeat
  h:=CreateFile(PChar('\\.\PhysicalDrive'+inttostr(c)),0,0,0,OPEN_EXISTING,0,0);
  if h=INVALID_HANDLE_VALUE then break;
  CloseHandle(h);
  Inc(c);
  until c=100;

  ShowMessage('Количество дисков '+IntToStr(c));
end;
499
01 октября 2007 года
madjahed
149 / / 14.01.2004
Спасибо, но как ещё узнать их размер?
334
01 октября 2007 года
HexEdit
809 / / 27.07.2006
как и обычного файла
 
Код:
SetFilePointer(h, 0, NULL, FILE_END);

Либо GetFileSize, но не уверен...
499
02 октября 2007 года
madjahed
149 / / 14.01.2004
Цитата: HexEdit
как и обычного файла
 
Код:
SetFilePointer(h, 0, NULL, FILE_END);

Либо GetFileSize, но не уверен...



Не работает GetFileSize.

3.7K
02 октября 2007 года
_lobster_
115 / / 10.04.2005
Придется работать на прямую с АТА контроллером. Вот здесь написано как без дров получить доступ к Ring0 http://wasm.ru/article.php?article=apihook_3.А потом идешь сюда http://wasm.ru/article.php?article=atazen01, внизу есть даже пример, как получить размер винта в секторах....
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог