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

SRB_Flags := SRB_DIR_IN or SRB_EVENT_NOTIFY;

SRB_BufLen := sizeof(buffer); // указываем размер буфера

SRB_BufPointer := @buffer; // определяем указатель на наш буфер

SRB_SenseLen := SENSE_LEN; // определяем длину буфера значения

SRB_CDBLen := 6; // эта команда – шестибайтная

SRB_PostProc := Pointer(hEvent); // процедура постинга – созданное событие

CDBByte[0] := $12; // код команды INQUIRY

// сюда помещаем старший байт длины буфера

CDBByte[3] := HIBYTE(sizeof(buffer));

// а сюда помещаем младший байт длины буфера

CDBByte[4] := LOBYTE(sizeof(buffer));

end;

// после того как заполнили структуру TSRB_ExecSCSICmd, посылаем

// ASPI-команду

dwASPIStatus := SendASPI32Command(@Srb);

if dwASPIStatus=SS_PENDING then

WaitForSingleObject(hEvent, INFINITE); // ждём окончания обработки команды

CloseHandle(hEvent); // закрываем хэндл события

// если команда выполнена без ошибок, заполняем данные об устройстве:

if Srb.SRB_Status=SS_COMP then

begin

with Cdroms.Cdroms[Number] do

begin

// восемь байт буфера, начиная с девятого, содержат

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

VendorID := PChar(Copy(buffer, 9, 8));

// шестнадцать байт, начиная с семнадцатого, содержат

// идентификатор продукта

ProductID := PChar(Copy(buffer, 17, 16));

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