阅读:1827回复:6
USB问题,文件拷贝
USB问题,如何将硬盘的文件拷贝到指定idVendor和idProduct的U盘或移动硬盘,有什么好的方法?
HidD_GetAttributes可以在XP/2K下得到idVendor和idProduct吗,如何拷贝文件到U盘或移动硬盘,WriteFile吗 [编辑 - 2/19/05 by quanquan] |
|
最新喜欢:hanwl |
沙发#
发布于:2005-02-18 18:57
USB问题,如何硬盘的文件拷贝到指定idVendor和idProduct的U盘或移动硬盘,有什么好的方法? 这句话好象不通 :D 是防止拷贝到硬盘还是拷贝到硬盘 但无论怎样都能实现 |
|
|
板凳#
发布于:2005-02-19 10:20
[quote]USB问题,如何硬盘的文件拷贝到指定idVendor和idProduct的U盘或移动硬盘,有什么好的方法? 这句话好象不通 :D 是防止拷贝到硬盘还是拷贝到硬盘 但无论怎样都能实现 [/quote] 别人问你如何实现的?? |
|
|
地板#
发布于:2005-02-19 11:04
现在楼主修改了才明白意思呀 |
|
|
地下室#
发布于:2005-02-19 11:11
USB问题,如何将硬盘的文件拷贝到指定idVendor和idProduct的U盘或移动硬盘,有什么好的方法? 对这个方法可以 但在使用HidD_GetAttributes前,你需要使用SetupDiEnumInterfaceDevice、SetupDiGetInterfaceDeviceDetail、CreateFile等打开设备得到设备的句柄,然后才能通过HidD_GetAttributes来得到PID、VID等 |
|
|
5楼#
发布于:2005-02-19 11:11
USB问题,如何将硬盘的文件拷贝到指定idVendor和idProduct的U盘或移动硬盘,有什么好的方法? 对这个方法可以 但在使用HidD_GetAttributes前,你需要使用SetupDiEnumInterfaceDevice、SetupDiGetInterfaceDeviceDetail、CreateFile等打开设备得到设备的句柄,然后才能通过HidD_GetAttributes来得到PID、VID等 最后在使用WriteFile或CopyFile拷贝文件 |
|
|
6楼#
发布于:2005-02-21 07:59
void CUSBPortDlg::OnSearch()
{ // TODO: Add your control notification handler code here m_strLog.Empty(); m_strLog = _T("正在查找系统中HID类的GUID标识...\r\n"); SetDlgItemText(IDC_EDIT_REPORT,m_strLog); // 查找本系统中HID类的GUID标识 GUID guidHID; HidD_GetHidGuid(&guidHID); m_strLog += _T("HID类的GUID标识为\r\n"); CString strShow; strShow.Format("%08x-%04x-%04x-%02x-%02x-%02x-%02x-%02x-%02x-%02x-%02x\r\n", guidHID.Data1,guidHID.Data2,guidHID.Data3,guidHID.Data4[0], guidHID.Data4[1],guidHID.Data4[2],guidHID.Data4[3],guidHID.Data4[4], guidHID.Data4[5],guidHID.Data4[6],guidHID.Data4[7]); SetDlgItemText(IDC_ID_VENDOR,strShow); m_strLog += strShow; SetDlgItemText(IDC_EDIT_REPORT,strShow); // 准备查找符合HID规范的USB设备 HDEVINFO hDevInfo = SetupDiGetClassDevs(&guidHID,NULL,0, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE); UINT nIndex = 0; m_strLog += _T("正在查找可用的USB设备...\r\n"); SetDlgItemText(IDC_EDIT_REPORT,m_strLog); // 查找USB设备接口 SP_DEVICE_INTERFACE_DATA strtInterfaceData; BOOL bSuccess = SetupDiEnumDeviceInterfaces(hDevInfo,NULL,&guidHID,0, &strtInterfaceData); if (!bSuccess) { m_strLog += _T("\r\n\r\n抱歉,未找到可用的USB设备"); SetDlgItemText(IDC_EDIT_REPORT,m_strLog); SetupDiDestroyDeviceInfoList(hDevInfo); return; } 我使用USBPORT程序,程序执行到SetupDiEnumDeviceInterfaces(hDevInfo,NULL,&guidHID,0, &strtInterfaceData);始终返回不成功,为什么? |
|