Реферат: Как сделать чтобы запущеный exe сам себя удалил 2

sptwb.Spt.DataIn := SCSI_IOCTL_DATA_IN;

// Устанавливаем размер передаваемых данных

sptwb.Spt.DataTransferLength := sizeof(sptwb.bDataBuf);

sptwb.Spt.TimeOutValue := 10; // Время ожидания – 10 секунд

sptwb.Spt.DataBufferOffset := DWORD(@sptwb.bDataBuf)-DWORD(@sptwb);

sptwb.Spt.SenseInfoOffset := DWORD(@sptwb.bSenseBuf)-DWORD(@sptwb);

len := sptwb.Spt.DataBufferOffset+sptwb.spt.DataTransferLength;

// Команда INQUIRY вам уже известна по предыдущей статье

sptwb.Spt.CDB[0] := SCSI_INQUIRY;

sptwb.Spt.CDB[3] := HiByte(sizeof(sptwb.bDataBuf));

sptwb.Spt.CDB[4] := LoByte(sizeof(sptwb.bDataBuf));

if DeviceIoControl(hDevice, IOCTL_SCSI_PASS_THROUGH, @sptwb,

len, @sptwb, len, Returned, nil) and (sptwb.Spt.ScsiStatus = $00) then

begin

// Нижеследующие циклы предназначены для разделения информации о

// производителе, спецификации и т.д. Если вашей программе это не нужно,

// можно сделать так : ShowMessage(PChar(@sptwb.bDataBuf[8]));

s := '';

for j := 8 to 15 do

s := s + Chr(sptwb.bDataBuf[j]);

// Идентификатор производителя

Cdroms.Cdroms[Cdroms.ActiveCdrom].VendorID := s;

s := '';

for j := 16 to 31 do

s := s + Chr(sptwb.bDataBuf[j]);

Cdroms.Cdroms[Cdroms.ActiveCdrom].ProductID := s; // Идентификатор продукта

s := '';

for j := 32 to 35 do

s := s+chr(sptwb.bDataBuf[j]);

К-во Просмотров: 457
Бесплатно скачать Реферат: Как сделать чтобы запущеный exe сам себя удалил 2