Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Ошибка при выполнении процедуры


Автор: Dark Wanderer 3.12.2005, 20:32
При выполнении кода:
Код

procedure TSMART.getserialnumber;
var
 h:Thandle; 
 idsector: Tidsector;
  x: integer;
begin
  h := GetphysicaldriveHandle(0, GENERIC_READ or GENERIC_WRITE);
  x := sizeof(idsector);
  ioctl.SmartIdentifyMiniport(h, 0, IDE_ID_FUNCTION, idsector, x);
  closehandle(h);
  changebyteorder(idsector.sSerialNumber,sizeof(idsector.SSerialNumber));
  showmessage(idsector.sSerialNumber);
end;


Возникает access violation после вызова showmessage smile
Жёстких дисков у меня 2. Для второго жёсткого диска
Код
GetphysicaldriveHandle(1, GENERIC_READ or GENERIC_WRITE);...

Вообще серийник не читается.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)