Показать сообщение отдельно
  #9  
Старый 11.01.2011, 13:10
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

PChar('\\.\PHYSICALDRIVE0') - первый жесткий в системе и работай с массивом байт, строка обрезается по символу #0:
Код:
var
  h: THandle;
  buf: array [0..$ffff] of Byte;
  dummy: Cardinal;
  i: Integer;
begin
  h:=CreateFile(
    PChar('\\.\PHYSICALDRIVE0'),
    GENERIC_READ or GENERIC_WRITE,
    0,
    nil,
    OPEN_EXISTING,
    0,
    0
  );
  if h=0 then raise Exception.Create(SysErrorMessage(GetLastError));
  SetFilePointer(h, $0000, nil, FILE_BEGIN);
  if ReadFile(h, buf, SizeOf(buf), dummy, nil) then
    for i:=0 to 100 {dummy} do Memo1.Text:=Memo1.Text+'%'+IntToHex(buf[i], 2)
  else
    ShowMessage(SysErrorMessage(GetLastError));
  CloseHandle(h);
end;

ЗЫ. пока отвечал снова опередили
__________________
Пишу программы за еду.
__________________
Ответить с цитированием