搜 索 计 算 机 中 所 有 驱 动 器

来源:互联网 发布:网络交换机报价 编辑:程序博客网 时间:2024/05/08 06:25
 void FindDriverInfo()

{

CComboBox* Driver=(CComboBox*)GetDlgItem(IDC_DRIVER);

DWORD dwNumBytesForDriveStrings;

HANDLE hHeap;

LPSTR lp;

CString strLogdrive;

int nNumDrives=0, nDriveNum;

dwNumBytesForDriveStrings=GetLogicalDriveStrings(0,NULL)

       *sizeof(TCHAR);//实际存储驱动器号的字符串长度

if (dwNumBytesForDriveStrings!=0) {

hHeap=GetProcessHeap();

lp=(LPSTR)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,

         dwNumBytesForDriveStrings);//

GetLogicalDriveStrings(HeapSize(hHeap,0,lp),lp);

StringBox.SetSize(dwNumBytesForDriveStrings/sizeof(TCHAR)+1);

while (*lp!=0) {

if (GetDriveType(lp)==DRIVE_REMOVABLE){

Driver->AddString(lp);

StringBox[nNumDrives]=lp;

nNumDrives++;

}

lp=_tcschr(lp,0)+1;

}

}

else AfxMessageBox("Can't Use The Function GetLogicalDriveStrings!");

}



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=271241