//--------------------------------------------------------------------------- #include<setupapi.h> #include<stdio.h> #include<objbase.h> #ifndef__BORLANDC__ #pragmacomment(lib,"setupapi.lib") #endif //--------------------------------------------------------------------------- charg_strCrnVerify[]= { ¡¡¡¡0xBB,0xB6,0xD3,0xAD,0xB9,0xE2,0xC1,0xD9,0x20,0x43, ¡¡¡¡0x2B,0x2B,0x42,0x75,0x69,0x6C,0x64,0x65,0x72,0xD1, ¡¡¡¡0xD0,0xBE,0xBF,0x20,0x2D,0x20,0x68,0x74,0x74,0x70, ¡¡¡¡0x3A,0x2F,0x2F,0x77,0x77,0x77,0x2E,0x63,0x63,0x72, ¡¡¡¡0x75,0x6E,0x2E,0x63,0x6F,0x6D }; //--------------------------------------------------------------------------- voidCrnReplaceString(LPSTRlpBuf,charc1,charc2) { ¡¡¡¡intnLen=strlen(lpBuf); ¡¡¡¡LPSTRlpTemp=newchar[nLen]; ¡¡¡¡memset(lpTemp,0,nLen); ¡¡¡¡intj=0; ¡¡¡¡for(inti=0;i<nLen;i++) ¡¡¡¡{ ¡¡¡¡¡¡¡¡if(lpBuf[i]==c1) ¡¡¡¡¡¡¡¡{ ¡¡¡¡¡¡¡¡¡¡¡¡if(c2!=0x00) ¡¡¡¡¡¡¡¡¡¡¡¡{ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpTemp[j]=c2; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡j++; ¡¡¡¡¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡else ¡¡¡¡¡¡¡¡{ ¡¡¡¡¡¡¡¡¡¡¡¡lpTemp[j]=lpBuf[i]; ¡¡¡¡¡¡¡¡¡¡¡¡j++; ¡¡¡¡¡¡¡¡} ¡¡¡¡} ¡¡¡¡// ¡¡¡¡memset(lpBuf,0,nLen); ¡¡¡¡strncpy(lpBuf,lpTemp,nLen); ¡¡¡¡delete[]lpTemp; } //--------------------------------------------------------------------------- //»ñȡָ¶¨ÅÌ·ûµÄÐòÁкÅ(Õë¶ÔUSBÓÅÅÌÓÐЧ) //charcDiskID:Ö¸¶¨ÅÌ·û£¬Èç'L' //LPSTRlpPID:ÐòÁкŴæ·ÅµÄ»º³å£¬ÈçcharszPID[32] //byccrun(ÀÏÑý)info@ccrun.com //--------------------------------------------------------------------------- boolCrnGetUSBDiskID(charcDiskID,LPSTRlpPID) { ¡¡¡¡charszDrv[4]; ¡¡¡¡sprintf(szDrv,"%c:\",cDiskID); ¡¡¡¡if(GetDriveType(szDrv)!=DRIVE_REMOVABLE) ¡¡¡¡{ ¡¡¡¡¡¡¡¡MessageBox(0,"Ö¸¶¨µÄÅ̲»ÊÇÓÐЧµÄÓÅÅÌ.", ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"´íÎó",MB_OK|MB_ICONWARNING); ¡¡¡¡¡¡¡¡returnfalse; ¡¡¡¡} ¡¡¡¡charlpRegPath[512]={0}; ¡¡¡¡charlpRegValue[256]={0}; ¡¡¡¡sprintf(lpRegPath,"SYSTEM\MountedDevices"); ¡¡¡¡sprintf(lpRegValue,"\DosDevices\%c:",cDiskID); ¡¡¡¡// ¡¡¡¡DWORDdwDataSize(0); ¡¡¡¡DWORDdwRegType(REG_BINARY); ¡¡¡¡LPBYTElpRegBinData(NULL); ¡¡¡¡LPSTRlpUSBKeyData(NULL); ¡¡¡¡//²éѯע²á±íÖÐÓ³ÉäÇý¶¯Æ÷µÄÉ豸ÐÅÏ¢ ¡¡¡¡HKEYhKey; ¡¡¡¡longlRet=::RegOpenKeyEx( ¡¡¡¡¡¡¡¡¡¡¡¡HKEY_LOCAL_MACHINE,//rootkey ¡¡¡¡¡¡¡¡¡¡¡¡lpRegPath,//Òª·ÃÎʵļüµÄλÖà ¡¡¡¡¡¡¡¡¡¡¡¡0,¡¡¡¡¡¡¡¡// ¡¡¡¡¡¡¡¡¡¡¡¡KEY_READ,¡¡//ÒÔ²éѯµÄ·½Ê½·ÃÎÊ×¢²á±í ¡¡¡¡¡¡¡¡¡¡¡¡&hKey);¡¡¡¡//hKEY±£´æ´Ëº¯ÊýËù´ò¿ªµÄ¼üµÄ¾ä±ú ¡¡¡¡if(lRet!=ERROR_SUCCESS) ¡¡¡¡¡¡¡¡returnfalse; ¡¡¡¡else ¡¡¡¡{ ¡¡¡¡¡¡¡¡lRet=::RegQueryValueEx(hKey,//Ëù´ò¿ªµÄ¼üµÄ¾ä±ú ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpRegValue,¡¡¡¡//Òª²éѯµÄ¼üÖµÃû ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NULL, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡&dwRegType,¡¡¡¡//²éѯÊý¾ÝµÄÀàÐÍ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpRegBinData,¡¡//±£´æËù²éѯµÄÊý¾Ý ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡&dwDataSize);¡¡//Ô¤ÉèÖõÄÊý¾Ý³¤¶È ¡¡¡¡¡¡¡¡if(lRet!=ERROR_SUCCESS) ¡¡¡¡¡¡¡¡{ ¡¡¡¡¡¡¡¡¡¡¡¡::RegCloseKey(hKey); ¡¡¡¡¡¡¡¡¡¡¡¡returnfalse; ¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡else ¡¡¡¡¡¡¡¡{ ¡¡¡¡¡¡¡¡¡¡¡¡lpRegBinData=newBYTE[dwDataSize]; ¡¡¡¡¡¡¡¡¡¡¡¡lpUSBKeyData=newchar[dwDataSize]; ¡¡¡¡¡¡¡¡¡¡¡¡memset(lpUSBKeyData,0,dwDataSize); ¡¡¡¡¡¡¡¡¡¡¡¡lRet=::RegQueryValueEx(hKey, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpRegValue, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NULL, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡&dwRegType, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpRegBinData, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡&dwDataSize); ¡¡¡¡¡¡¡¡¡¡¡¡if(lRet!=ERROR_SUCCESS) ¡¡¡¡¡¡¡¡¡¡¡¡{ // ±¾ÎÄת×Ô C++Builder Ñо¿ - http://www.ccrun.com/article.asp?i=1021&d=fgp83l ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡delete[]lpRegBinData; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡delete[]lpUSBKeyData; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡::RegCloseKey(hKey); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡returnfalse; ¡¡¡¡¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡} ¡¡¡¡} ¡¡¡¡::RegCloseKey(hKey); ¡¡¡¡//¹ýÂ˶þ½øÖÆ´®ÖеÄÎÞÓÃÐÅÏ¢(½«0x0×Ö·ûÈ¥³ý) ¡¡¡¡intj=0; ¡¡¡¡for(DWORDi=0;i<dwDataSize;i++) ¡¡¡¡{ ¡¡¡¡¡¡¡¡if(lpRegBinData[i]!=0x0) ¡¡¡¡¡¡¡¡{ ¡¡¡¡¡¡¡¡¡¡¡¡lpUSBKeyData[j]=lpRegBinData[i]; ¡¡¡¡¡¡¡¡¡¡¡¡j++; ¡¡¡¡¡¡¡¡} ¡¡¡¡} ¡¡¡¡delete[]lpRegBinData; ¡¡¡¡//I'msorry:YoucanremoveunderlineinyourCode. ¡¡¡¡MessageBox(0,g_strCrnVerify,"CrnGetUSBDiskID",0); ¡¡¡¡//I'msorry:Onlyfor[ZhuanTieBuLiuMing].--# ¡¡¡¡// ½ØÈ¡lpUSBKeyDataÖеÄÓÐÓÃÐÅÏ¢,Àý:7&100a16f&0 ¡¡¡¡// ??STORAGE#RemovableMedia#7&100a16f&0&RM#{53f5630d-b6bf-11d0-94f2-00a0c91efb8b} ¡¡¡¡// 63 63 72 75 6E 2E 63 6F 6D ¡¡¡¡LPSTRlpPos1=strstr(lpUSBKeyData,"#RemovableMedia#")+16; ¡¡¡¡LPSTRlpPos2=strstr(lpUSBKeyData,"RM"); ¡¡¡¡strncpy(lpUSBKeyData,lpPos1,int(lpPos2)-int(lpPos1)); ¡¡¡¡lpUSBKeyData[int(lpPos2)-int(lpPos1)-1]=0x0; ¡¡¡¡strcpy(lpUSBKeyData,strupr(lpUSBKeyData)); ¡¡¡¡//DiskDevice(´ÅÅÌÉ豸)µÄGUID ¡¡¡¡GUIDguidUSB; ¡¡¡¡CLSIDFromString(L"{53f56307-b6bf-11d0-94f2-00a0c91efb8b}",&guidUSB); ¡¡¡¡// ¡¡¡¡HDEVINFOhUSB=SetupDiGetClassDevs( ¡¡¡¡¡¡¡¡¡¡¡¡&guidUSB,NULL,0,DIGCF_PRESENT|DIGCF_DEVICEINTERFACE); ¡¡¡¡if(hUSB==INVALID_HANDLE_VALUE) ¡¡¡¡{ ¡¡¡¡¡¡¡¡delete[]lpUSBKeyData; ¡¡¡¡¡¡¡¡returnfalse; ¡¡¡¡} ¡¡¡¡// ¡¡¡¡intnDevIndex=0; ¡¡¡¡boolbSuccess; ¡¡¡¡SP_DEVINFO_DATADevData; ¡¡¡¡SP_DEVICE_INTERFACE_DATADevIntData; ¡¡¡¡PSP_DEVICE_INTERFACE_DETAIL_DATAlpDevIntDetailData; ¡¡¡¡DWORDdwBytesReturned; ¡¡¡¡//±éÀú´ÅÅÌÉ豸 ¡¡¡¡do ¡¡¡¡{ ¡¡¡¡¡¡¡¡DevIntData.cbSize=sizeof(SP_DEVICE_INTERFACE_DATA); ¡¡¡¡¡¡¡¡bSuccess=SetupDiEnumDeviceInterfaces(hUSB,NULL,&guidUSB, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡nDevIndex,&DevIntData)>0; ¡¡¡¡¡¡¡¡if(bSuccess) ¡¡¡¡¡¡¡¡{ ¡¡¡¡¡¡¡¡¡¡¡¡//»ñÈ¡½Ó¿ÚÏêϸÐÅÏ¢ ¡¡¡¡¡¡¡¡¡¡¡¡DevData.cbSize=sizeof(SP_DEVINFO_DATA); ¡¡¡¡¡¡¡¡¡¡¡¡dwBytesReturned=0; ¡¡¡¡¡¡¡¡¡¡¡¡SetupDiGetDeviceInterfaceDetailA(hUSB,&DevIntData, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NULL,0,&dwBytesReturned,&DevData); ¡¡¡¡¡¡¡¡¡¡¡¡if(dwBytesReturned!=0&&GetLastError()==ERROR_INSUFFICIENT_BUFFER) ¡¡¡¡¡¡¡¡¡¡¡¡{ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpDevIntDetailData=(PSP_DEVICE_INTERFACE_DETAIL_DATA) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡GlobalAlloc(GMEM_FIXED,dwBytesReturned); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpDevIntDetailData->cbSize= ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(SetupDiGetDeviceInterfaceDetailA(hUSB,&DevIntData, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpDevIntDetailData,dwBytesReturned,&dwBytesReturned,&DevData)) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡{ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//È¡µÃÉ豸½Ó¿ÚÏêϸÐÅÏ¢²¢¸ù¾Ýת»¯ºóµÄ·¾¶ÔÚ×¢²á±íÖвéѯ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡LPSTRlpPathTemp=newchar[strlen(lpDevIntDetailData->DevicePath)+256]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡strcpy(lpRegPath,"SYSTEM\CurrentControlSet\Enum\"); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡strcpy(lpPathTemp,lpDevIntDetailData->DevicePath); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpPos1=LPSTR(int(lpPathTemp)+4); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpPos2=LPSTR(int(strstr(lpPathTemp,"{"))-1); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡strncpy(lpPathTemp,lpPos1,int(lpPos2)-int(lpPos1)); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpPathTemp[int(lpPos2)-int(lpPos1)]=0x0; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CrnReplaceString(lpPathTemp,'#','\'); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡strcat(lpRegPath,lpPathTemp); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(RegOpenKeyEx( ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡HKEY_LOCAL_MACHINE, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpRegPath, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡0, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡KEY_READ, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡&hKey)==ERROR_SUCCESS) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡{ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dwRegType=REG_SZ; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡LPSTRlpRegSzData=NULL; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡dwDataSize=0; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lRet=::RegQueryValueEx(hKey, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"ParentIdPrefix", ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NULL, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡&dwRegType, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡(LPBYTE)lpRegSzData, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡&dwDataSize); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(lRet==ERROR_SUCCESS) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡{ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpRegSzData=newchar[dwDataSize]; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lRet=::RegQueryValueEx(hKey, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡"ParentIdPrefix", ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡NULL, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡&dwRegType, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡(LPBYTE)lpRegSzData, ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡&dwDataSize); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(lRet==ERROR_SUCCESS) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡{ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡strcpy(lpRegSzData,strupr(lpRegSzData)); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(!strcmp(lpUSBKeyData,lpRegSzData)) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡{ ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//¾±È¶Ô£¬ÕÒµ½Òª²éѯµÄ´ÅÅÌÉ豸 ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡strcpy(lpPathTemp,LPSTR(int(strstr( ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpDevIntDetailData->DevicePath,"#"))+1)); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpPos1=LPSTR(int(strstr(lpPathTemp,"#"))+1); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpPos2=LPSTR(int(strstr(lpPathTemp,"#{"))); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡strncpy(lpPathTemp,lpPos1,int(lpPos2)-int(lpPos1)); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡lpPathTemp[int(lpPos2)-int(lpPos1)]=0x0; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡//»ñÈ¡×îÖյĴÅÅÌÐòÁкŠ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡CrnReplaceString(lpPathTemp,'&',0x00); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡if(lpPID) ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡strncpy(lpPID,strupr(lpPathTemp),32); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡delete[]lpRegSzData; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡delete[]lpPathTemp; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡GlobalFree(lpDevIntDetailData); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡::RegCloseKey(hKey); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡break; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡delete[]lpRegSzData; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡::RegCloseKey(hKey); ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡delete[]lpPathTemp; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡nDevIndex++; ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡GlobalFree(lpDevIntDetailData); ¡¡¡¡¡¡¡¡¡¡¡¡} ¡¡¡¡¡¡¡¡} ¡¡¡¡}while(bSuccess); ¡¡¡¡SetupDiDestroyDeviceInfoList(hUSB); ¡¡¡¡delete[]lpUSBKeyData; ¡¡¡¡returntrue; } //--------------------------------------------------------------------------- void__fastcallTForm1::Button1Click(TObject*Sender) { ¡¡¡¡charlpPID[32]; ¡¡¡¡if(CrnGetUSBDiskID('L',lpPID)) ¡¡¡¡¡¡¡¡ShowMessage(lpPID); }
(±à¼:Aniston)
|