vc 實現控制USB裝置啟用與否

2021-04-29 02:15:49 字數 2562 閱讀 6993

#include 

#include 

#include 

//#include 

#pragma comment(lib, "setupapi.lib") 

//#pragma comment(lib, "shlwapi.lib") 

hdevinfo hdevinfo = null;   

// 出錯資訊 

void formatmsg(dworddwerror,lptstr* o)   

}   

}   

boolchangestatus(dwordnewstatus,dwordselecteditem, hdevinfo hdevinfo)   

;   

sp_devinfo_data deviceinfodata = ;   

hcursor = setcursor(loadcursor(null, idc_wait));   

// get a handle to the selected item. 

if (!setupdienumdeviceinfo(hdevinfo, selecteditem, &deviceinfodata))   

// set the propchangeparams structure. 

propchangeparams.classinstallheader.installfunction = dif_propertychange;   

propchangeparams.scope = dics_flag_global;   

propchangeparams.statechange = newstatus;   

if (!setupdisetclassinstallparams(hdevinfo, &deviceinfodata, (sp_classinstall_header *)&propchangeparams,   

sizeof(propchangeparams)))   

// call the classinstaller and perform the change. 

if (!setupdicallclassinstaller(dif_propertychange,hdevinfo,&deviceinfodata))   

setcursor(hcursor);    

return true;   

}   

catch (tchar* pszerror)   

return false;   

}   

}   

// 這些裝置的啟用和禁用主要有此函式實現 

// 引數說明,nstatus 可取3個值,-1 :啥也不做 

// 0 禁用裝置,1啟用裝置。 

// nindex用於控制是對光碟機,軟碟機還是對usb啟用或禁用 

// 也是可取3個值,0 代表軟碟機,1 代表光碟機 

// 2 代表usb 

// 譬如要對光碟機實現禁用,可以這樣呼叫此函式 

// controldisk(0, 1); 

boolcontroldisk(intnstatus,intnindex)   

lptstrlpszmsg = null;   

try   

hdevinfo = setupdigetclassdevs(&guid,null,null,digcf_present);   

if (invalid_handle_value != hdevinfo)   

dwordi;   

sp_devinfo_data deviceinfodata;   

zeromemory(&deviceinfodata, sizeof(sp_devinfo_data));   

deviceinfodata.cbsize = sizeof(sp_devinfo_data);   

for (i = 0; setupdienumdeviceinfo(hdevinfo, i, &deviceinfodata); ++i)   

else

if (0 == nstatus)   

}   

// 釋放 device information set 

return setupdidestroydeviceinfolist(hdevinfo);   

}   

catch (tchar* pszerror)   

return false;   

}   

return false;   

}   

void main()   

vc 列舉USB裝置

include pragma comment lib,shlwapi.lib include pragma comment lib,setupapi.lib 函式名稱 enumusbdev 函式功能 列舉裝置 參 數 acdevpath 存放裝置路徑 ndevnum 裝置數量 返 回 值 成功返回t...

Virtualbox 啟用USB 裝置支援

virtualbox 預設不支援usb裝置接入,所以此處分三步,新增支援。如圖 2.開啟虛擬系統設定,在 usb裝置 標籤下,勾選上 啟用usb控制器 以及 2.0控制器 增加對usb2.0 的支援。如圖 3.按說這個時候已經搞定了。可是在usb列表裡面卻沒有任何usb裝置。這是為什麼呢?谷歌了一下...

Virtualbox 啟用USB 裝置支援

virtualbox 預設不支援usb裝置接入,所以此處分三步,新增支援。如圖 2.開啟虛擬系統設定,在 usb裝置 標籤下,勾選上 啟用usb控制器 以及 2.0控制器 增加對usb2.0 的支援。如圖 3.按說這個時候已經搞定了。可是在usb列表裡面卻沒有任何usb裝置。這是為什麼呢?谷歌了一下...