Реферат: Как сделать чтобы запущеный exe сам себя удалил 2
s := '';
for j := 36 to 55 do
s := s+chr(sptwb.bDataBuf[j]);
// Спецификация производителя
Cdroms.Cdroms[Cdroms.ActiveCdrom].VendorSpec := s;
end;
end;
Если вы заметили, использование параметров PathId, TargetId и Lun для интерфейса SPTI не является обязательным (в отличие от ASPI). Поэтому, если вы всё же хотите, чтобы ваша программа определяла идентификатор SCSI-адаптера, идентификатор объекта SCSI и логический номер устройства, могу посоветовать воспользоваться таким кодом:
procedure Get_PathId_TargetId_Lun; var buf : array [0..1023] of Byte; pscsiAddr:PSCSI_ADDRESS; const IOCTL_SCSI_GET_ADDRESS = $41018; begin ZeroMemory(@buf, sizeof(buf)); pscsiAddr := PSCSI_ADDRESS(@buf); pscsiAddr^.Length := sizeof(TSCSI_ADDRESS); if (DeviceIoControl(hDevice, IOCTL_SCSI_GET_ADDRESS, nil, 0, pscsiAddr, sizeof(TSCSI_ADDRESS), returned, nil)) then begin Cdroms.Cdroms[Cdroms.ActiveCdrom].HaID := pscsiAddr^.PortNumber; Cdroms.Cdroms[Cdroms.ActiveCdrom].Target := pscsiAddr^.TargetId; Cdroms.Cdroms[Cdroms.ActiveCdrom].Lun := pscsiAddr^.Lun; end else ShowMessage(SysErrorMessage(GetLastError)); end; |
В этом куске кода используется структура PSCSI_ADDRESS, которая выглядит следующим образом:
type К-во Просмотров: 458
Бесплатно скачать Реферат: Как сделать чтобы запущеный exe сам себя удалил 2
|