Реферат: Как сделать чтобы запущеный 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