亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? hdid.pas

?? 放棄了先前的采用報表實現(xiàn)
?? PAS
字號:
Unit HDID;

Interface
Uses
   Windows, SysUtils, shellapi, ActiveX, ComObj, Shlobj;

Function GetHDID(Var sID: pchar): integer;
Procedure CreateShortCut(FileName, ShortCutName, DestDir: pchar);
     //在桌面上創(chuàng)建快捷方式

Implementation

Procedure CreateShortCut(FileName, ShortCutName, DestDir: pchar);
//use Shellapi, ActiveX, ComObj, Shlobj
//TODO: 創(chuàng)建快捷方式
//Example CreateShortCut('c:\windows\notepad.exe','記事本')

   Function AddTail(Src: String): String;
  //在路徑字符串的最后加上'\'
   Begin
      If (Src[Length(Src)] <> '\') Then result := Src + '\' Else
         result := Src;
   End;
Var
   tmpObject        : IUnknown;
   tmpSLink         : IShellLink;
   tmpPFile         : IPersistFile;
 //  PIDL : PItemIDList;
   StartupDirectory : pchar;            //array[0..MAX_PATH] of Char;
   StartupFilename  : String;
   LinkFilename     : WideString;
Begin
   StartupFilename := FileName;
   tmpObject := CreateComObject(CLSID_ShellLink);
   tmpSLink := tmpObject As IShellLink;
   tmpPFile := tmpObject As IPersistFile;
   tmpSLink.SetPath(pchar(StartupFilename));
   tmpSLink.SetWorkingDirectory(pchar(ExtractFilePath(StartupFilename)));
 //  SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, PIDL);
 //  SHGetPathFromIDList(PIDL, StartupDirectory);
   StartupDirectory := DestDir;
   LinkFilename := AddTail(StartupDirectory) + ShortCutName + '.lnk';
   tmpPFile.Save(pWChar(LinkFilename), false);
End;

  /////////////////////////////////////////////////

Function GetHDID(Var sID: pchar): integer;
//TODO:獲取Ide硬盤序列號
Type
   TSrbIoControl = Packed Record
      HeaderLength: ULONG;
      Signature: Array[0..7] Of char;
      Timeout: ULONG;
      ControlCode: ULONG;
      ReturnCode: ULONG;
      Length: ULONG;
   End;
   SRB_IO_CONTROL = TSrbIoControl;
   PSrbIoControl = ^TSrbIoControl;
   TIDERegs = Packed Record
      bFeaturesReg: byte;               // Used for specifying SMART "commands".
      bSectorCountReg: byte;            // IDE sector count register
      bSectorNumberReg: byte;           // IDE sector number register
      bCylLowReg: byte;                 // IDE low order cylinder value
      bCylHighReg: byte;                // IDE high order cylinder value
      bDriveHeadReg: byte;              // IDE drive/head register
      bCommandReg: byte;                // Actual IDE command.
      bReserved: byte;                  // reserved. Must be zero.
   End;
   IDEREGS = TIDERegs;
   PIDERegs = ^TIDERegs;
   TSendCmdInParams = Packed Record
      cBufferSize: dword;
      irDriveRegs: TIDERegs;
      bDriveNumber: byte;
      bReserved: Array[0..2] Of byte;
      dwReserved: Array[0..3] Of dword;
      bBuffer: Array[0..0] Of byte;
   End;
   SENDCMDINPARAMS = TSendCmdInParams;
   PSendCmdInParams = ^TSendCmdInParams;
   TIdSector = Packed Record
      wGenConfig: word;
      wNumCyls: word;
      wReserved: word;
      wNumHeads: word;
      wBytesPerTrack: word;
      wBytesPerSector: word;
      wSectorsPerTrack: word;
      wVendorUnique: Array[0..2] Of word;
      sSerialNumber: Array[0..19] Of char;
      wBufferType: word;
      wBufferSize: word;
      wECCSize: word;
      sFirmwareRev: Array[0..7] Of char;
      sModelNumber: Array[0..39] Of char;
      wMoreVendorUnique: word;
      wDoubleWordIO: word;
      wCapabilities: word;
      wReserved1: word;
      wPIOTiming: word;
      wDMATiming: word;
      wBS: word;
      wNumCurrentCyls: word;
      wNumCurrentHeads: word;
      wNumCurrentSectorsPerTrack: word;
      ulCurrentSectorCapacity: ULONG;
      wMultSectorStuff: word;
      ulTotalAddressableSectors: ULONG;
      wSingleWordDMA: word;
      wMultiWordDMA: word;
      bReserved: Array[0..127] Of byte;
   End;
   PIdSector = ^TIdSector;
Const
   IDE_ID_FUNCTION  = $EC;
   IDENTIFY_BUFFER_SIZE = 512;
   DFP_RECEIVE_DRIVE_DATA = $0007C088;
   IOCTL_SCSI_MINIPORT = $0004D008;
   IOCTL_SCSI_MINIPORT_IDENTIFY = $001B0501;
   DataSize         = SizeOf(TSendCmdInParams) - 1 + IDENTIFY_BUFFER_SIZE;
   BufferSize       = SizeOf(SRB_IO_CONTROL) + DataSize;
   W9xBufferSize    = IDENTIFY_BUFFER_SIZE + 16;
Var
   hDevice          : THandle;
   cbBytesReturned  : dword;
   pInData          : PSendCmdInParams;
   pOutData         : Pointer;          // PSendCmdOutParams
   Buffer           : Array[0..BufferSize - 1] Of byte;
   srbControl       : TSrbIoControl Absolute Buffer;
   Tmp              : String;

   Procedure ChangeByteOrder(Var Data: Array Of char; Size: integer);
   Var
      ptr           : pchar;
      i             : integer;
      c             : char;
   Begin
      ptr := @Data;
      For i := 0 To (Size Shr 1) - 1 Do Begin
         c := ptr^;
         ptr^ := (ptr + 1)^;
         (ptr + 1)^ := c;
         inc(ptr, 2);
      End;
   End;

Begin
   result := 0;
   FillChar(Buffer, BufferSize, #0);
   If Win32Platform = VER_PLATFORM_WIN32_NT Then Begin // Windows NT, Windows 2000
    // Get SCSI port handle
      hDevice := CreateFile('\\.\Scsi0:',
         GENERIC_READ Or GENERIC_WRITE,
         FILE_SHARE_READ Or FILE_SHARE_WRITE,
         Nil, OPEN_EXISTING, 0, 0);
      If hDevice = INVALID_HANDLE_VALUE Then Exit;
      Try
         srbControl.HeaderLength := SizeOf(SRB_IO_CONTROL);
         System.Move('SCSIDISK', srbControl.Signature, 8);
         srbControl.Timeout := 2;
         srbControl.Length := DataSize;
         srbControl.ControlCode := IOCTL_SCSI_MINIPORT_IDENTIFY;
         pInData := PSendCmdInParams(pchar(@Buffer)
            + SizeOf(SRB_IO_CONTROL));
         pOutData := pInData;
         With pInData^ Do Begin
            cBufferSize := IDENTIFY_BUFFER_SIZE;
            bDriveNumber := 0;
            With irDriveRegs Do Begin
               bFeaturesReg := 0;
               bSectorCountReg := 1;
               bSectorNumberReg := 1;
               bCylLowReg := 0;
               bCylHighReg := 0;
               bDriveHeadReg := $A0;
               bCommandReg := IDE_ID_FUNCTION;
            End;
         End;
         If Not DeviceIoControl(hDevice, IOCTL_SCSI_MINIPORT,
            @Buffer, BufferSize, @Buffer, BufferSize,
            cbBytesReturned, Nil) Then Exit;
      Finally
         CloseHandle(hDevice);
      End;
   End Else Begin                       // Windows 95 OSR2, Windows 98
      hDevice := CreateFile('\\.\SMARTVSD', 0, 0, Nil,
         CREATE_NEW, 0, 0);
      If hDevice = INVALID_HANDLE_VALUE Then Exit;
      Try
         pInData := PSendCmdInParams(@Buffer);
         pOutData := @pInData^.bBuffer;
         With pInData^ Do Begin
            cBufferSize := IDENTIFY_BUFFER_SIZE;
            bDriveNumber := 0;
            With irDriveRegs Do Begin
               bFeaturesReg := 0;
               bSectorCountReg := 1;
               bSectorNumberReg := 1;
               bCylLowReg := 0;
               bCylHighReg := 0;
               bDriveHeadReg := $A0;
               bCommandReg := IDE_ID_FUNCTION;
            End;
         End;
         If Not DeviceIoControl(hDevice, DFP_RECEIVE_DRIVE_DATA,
            pInData, SizeOf(TSendCmdInParams) - 1, pOutData,
            W9xBufferSize, cbBytesReturned, Nil) Then Exit;
      Finally
         CloseHandle(hDevice);
      End;
   End;
   With PIdSector(pchar(pOutData) + 16)^ Do Begin
      ChangeByteOrder(sSerialNumber, SizeOf(sSerialNumber));
      SetString(Tmp, sSerialNumber, SizeOf(sSerialNumber));
      sID := pchar(Tmp);
      result := lstrlen(sID);
   End;
End;

End.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区日韩欧美| 国产久卡久卡久卡久卡视频精品| 加勒比av一区二区| 国产拍欧美日韩视频二区| 91日韩一区二区三区| 青青草视频一区| 国产日韩欧美精品电影三级在线| 色综合久久综合网97色综合 | 日本成人超碰在线观看| 精品成人私密视频| 精品视频一区 二区 三区| 精品一区二区在线观看| 国产精品久线在线观看| 日韩欧美一区在线观看| 91在线无精精品入口| 蜜桃一区二区三区在线| 亚洲综合色婷婷| 久久免费电影网| 99re视频这里只有精品| 国内成人精品2018免费看| 亚洲精品乱码久久久久久久久| 欧美成人精品福利| 欧洲生活片亚洲生活在线观看| 黄色精品一二区| 蜜臀av性久久久久av蜜臀妖精| 亚洲伦理在线免费看| 2021国产精品久久精品| 91.com视频| 色综合天天综合色综合av | 中文字幕巨乱亚洲| 欧美va亚洲va| 欧美日韩一区二区三区视频| 成人免费视频一区二区| 国产美女娇喘av呻吟久久| 天堂久久久久va久久久久| 亚洲丝袜制服诱惑| 一区在线观看视频| 国产欧美日韩另类视频免费观看 | 精品对白一区国产伦| 欧美大肚乱孕交hd孕妇| 色婷婷综合五月| 色系网站成人免费| 成人一道本在线| 久久99精品国产| 六月丁香综合在线视频| 舔着乳尖日韩一区| 国产片一区二区三区| 久久婷婷色综合| 欧美成人一区二区三区片免费 | 麻豆精品视频在线观看免费| 亚洲国产日韩综合久久精品| 2023国产精品| 国产精品人妖ts系列视频| 欧美精品一区二区三区四区| 久久精品亚洲乱码伦伦中文 | 亚洲天堂福利av| 亚洲免费在线播放| 亚洲欧洲综合另类| 亚洲欧美偷拍另类a∨色屁股| 亚洲一区二区三区不卡国产欧美 | 92精品国产成人观看免费 | 蜜桃av噜噜一区二区三区小说| 亚洲国产一区在线观看| 午夜精品一区二区三区三上悠亚| 夜夜嗨av一区二区三区中文字幕| 欧美日韩你懂得| 日韩欧美精品在线| 欧美va亚洲va在线观看蝴蝶网| 欧美精品v日韩精品v韩国精品v| 欧美精品精品一区| 欧美一级生活片| 日韩一区二区在线看| 国产欧美一区二区三区在线看蜜臀 | 粉嫩一区二区三区性色av| 99久久精品费精品国产一区二区| 91在线你懂得| 91精品福利在线| 日韩三级在线免费观看| 国产午夜精品一区二区三区嫩草| 精品久久五月天| 亚洲美女少妇撒尿| 亚洲一二三专区| 狠狠色丁香久久婷婷综| 成人网男人的天堂| 欧美制服丝袜第一页| 日韩欧美不卡一区| 国产精品灌醉下药二区| 亚洲国产日日夜夜| 成人综合婷婷国产精品久久| 99re这里只有精品首页| 欧美日韩在线不卡| 中文子幕无线码一区tr| 一区二区三区在线视频播放| 国产午夜精品一区二区三区视频 | 欧美精品丝袜中出| 久久夜色精品一区| 亚洲私人黄色宅男| 人人超碰91尤物精品国产| 国产一区二区电影| 欧美亚洲国产一卡| 久久久国产精华| 亚洲一区二区三区视频在线 | 国产成人av一区二区| 色菇凉天天综合网| 国产三级一区二区三区| 亚洲综合999| 国产69精品久久久久毛片| 欧美亚洲愉拍一区二区| 欧美一区二区免费视频| 中文字幕一区二区三区蜜月| 日本欧美韩国一区三区| 99免费精品在线观看| 日韩精品在线网站| 亚洲永久精品国产| 国产曰批免费观看久久久| 欧美一级夜夜爽| 亚洲精品国产无天堂网2021 | 亚洲黄色录像片| 国产综合色产在线精品| 这里只有精品免费| 中文字幕在线观看一区二区| 久久不见久久见中文字幕免费| 在线观看亚洲专区| 国产欧美久久久精品影院| 老鸭窝一区二区久久精品| 在线观看日韩国产| 国产精品美女久久久久高潮| 国内精品第一页| 欧美精品欧美精品系列| 亚洲成人1区2区| 97se亚洲国产综合在线| 国产欧美日韩视频在线观看| 国产精品自拍av| 日韩欧美亚洲另类制服综合在线 | 亚洲视频香蕉人妖| 成人黄色综合网站| 久久久一区二区| 轻轻草成人在线| 日韩欧美精品三级| 日本亚洲天堂网| 91精品国产综合久久香蕉麻豆| 一区二区三区在线高清| 国产老女人精品毛片久久| 久久网站最新地址| 麻豆精品在线视频| 日韩欧美精品在线| 久久成人av少妇免费| 日韩一级黄色大片| 经典一区二区三区| 精品精品国产高清a毛片牛牛| 日本不卡一区二区三区| 日本乱人伦一区| 一区二区三区中文在线观看| 一本久久a久久免费精品不卡| 亚洲欧美一区二区三区孕妇| 色综合视频在线观看| 中文字幕一区二区在线播放| 99国产精品视频免费观看| 久久久不卡网国产精品二区| 经典一区二区三区| 国产日产欧美一区| av日韩在线网站| 一区二区三区美女| 欧美欧美午夜aⅴ在线观看| 三级在线观看一区二区| 91精品国产全国免费观看| 久久成人免费网站| 国产午夜久久久久| 成人午夜大片免费观看| 国产精品久久三| 91热门视频在线观看| 亚洲成年人网站在线观看| 欧美高清视频在线高清观看mv色露露十八 | 亚洲在线成人精品| 7777精品久久久大香线蕉| 黄色精品一二区| 中文字幕第一区综合| 91麻豆视频网站| 蜜臀av亚洲一区中文字幕| 日韩亚洲欧美在线观看| 日韩国产欧美在线播放| 久久先锋影音av鲁色资源 | 色成人在线视频| 久草中文综合在线| 国产精品欧美久久久久一区二区| 成人av网在线| 亚洲国产成人porn| 成人欧美一区二区三区在线播放| 91麻豆成人久久精品二区三区| 亚洲免费毛片网站| 欧美一级午夜免费电影| 国产成人午夜精品5599| 亚洲一区在线播放| 2014亚洲片线观看视频免费| 欧日韩精品视频| 国产剧情一区二区三区| 国产精品亲子伦对白| 日韩一区二区电影| 成人av集中营| 麻豆精品国产91久久久久久|