| 
			 
					阅读:5527回复:4
				 
				急,请问如何获取USB设备的路径,非HID类型
					请问我该如何在程序中实现,请给出实现方法与思路;
 
							或者给出VB源程序,解决立即给分。 万分感谢!  | 
	|
					
						最新喜欢: | 
	
| 
			 沙发# 
								发布于:2005-05-12 10:51				
			
					ClassGuid = GUID_CLASS_USB_DEVICE
 
							SetupDiGetClassDevs(ClassGuid, nil, 0, DIGCF_PRESENT or DIGCF_DEVICEINTERFACE ); SetupDiEnumDeviceInfo SetupDiGetDeviceRegistryProperty SetupDiDestroyDeviceInfoList MSDN  | 
	|
| 
			 板凳# 
								发布于:2005-05-12 17:46				
			
					用这个函数试试
 
							// GetDeviceViaInterface: Open a handle via a device interface HANDLE GetDeviceViaInterface( GUID* pGuid, DWORD instance) { // Get handle to relevant device information set HDEVINFO info = SetupDiGetClassDevs(pGuid, NULL, NULL, DIGCF_PRESENT | DIGCF_INTERFACEDEVICE); if(info==INVALID_HANDLE_VALUE) { printf(\"No HDEVINFO available for this GUID\\n\"); return NULL; } // Get interface data for the requested instance SP_INTERFACE_DEVICE_DATA ifdata; ifdata.cbSize = sizeof(ifdata); if(!SetupDiEnumDeviceInterfaces(info, NULL, pGuid, instance, &ifdata)) { printf(\"No SP_INTERFACE_DEVICE_DATA available for this GUID instance\\n\"); SetupDiDestroyDeviceInfoList(info); return NULL; } // Get size of symbolic link name DWORD ReqLen; SetupDiGetDeviceInterfaceDetail(info, &ifdata, NULL, 0, &ReqLen, NULL); PSP_INTERFACE_DEVICE_DETAIL_DATA ifDetail = (PSP_INTERFACE_DEVICE_DETAIL_DATA)(new char[ReqLen]); if( ifDetail==NULL) { return NULL; } // Get symbolic link name ifDetail->cbSize = sizeof(SP_INTERFACE_DEVICE_DETAIL_DATA); if( !SetupDiGetDeviceInterfaceDetail(info, &ifdata, ifDetail, ReqLen, NULL, NULL)) { SetupDiDestroyDeviceInfoList(info); delete ifDetail; return NULL; } printf(\"Symbolic link is %s\\n\",ifDetail->DevicePath); // Open file and pipe HANDLE rv = CreateFile(ifDetail->DevicePath, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if( rv==INVALID_HANDLE_VALUE) rv = NULL; delete ifDetail; SetupDiDestroyDeviceInfoList(info); return rv; }  | 
	|
| 
			 地板# 
								发布于:2005-05-13 08:49				
			
					那么请问这个USB设备的GUID如何获得呢?
 
							是不是每个GUID标志一个USB设备呢? USB设备不同,GUID也一定不同,这样判断对不对? 请高手进来回答,谢谢!  | 
	|
| 
			 地下室# 
								发布于:2005-05-13 12:59				
			
					GUID在设备的驱动程序的inf文件中可以找到,不同累得USB设备有不同的GUID,你可以找相关的书查一下				 
							 | 
	|