日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

监控USB设备插入/拔出写法2

發布時間:2025/5/22 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 监控USB设备插入/拔出写法2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//檢測設備增加移除相關消息 LRESULT CMiniHidTestDlg::OnMyDeviceChange(WPARAM wParam, LPARAM lParam) {CString pDevName ="",strDevInfo,strDevid="",strDepid ="";int npos;int ivid,ipid,idvid,idpid; bool bInsert =false;bool bRemove =false;if ( DBT_DEVICEARRIVAL == wParam || DBT_DEVICEREMOVECOMPLETE == wParam ) {PDEV_BROADCAST_HDR pHdr = (PDEV_BROADCAST_HDR)lParam;PDEV_BROADCAST_DEVICEINTERFACE pDevInf;PDEV_BROADCAST_HANDLE pDevHnd;PDEV_BROADCAST_OEM pDevOem;PDEV_BROADCAST_PORT pDevPort;PDEV_BROADCAST_VOLUME pDevVolume;if(wParam==DBT_DEVICEARRIVAL)//有新設備插入系統{bInsert =true;}else if (wParam ==DBT_DEVICEREMOVECOMPLETE){bRemove =true;}switch( pHdr->dbch_devicetype ) { case DBT_DEVTYP_DEVICEINTERFACE:pDevInf = (PDEV_BROADCAST_DEVICEINTERFACE)pHdr;strDevInfo =pDevInf->dbcc_name;strDevInfo.MakeUpper(); //全部轉成大寫 npos =strDevInfo.Find("HID#VID_",0);if (npos >0 ) {strDevInfo =strDevInfo.Mid(12);npos =strDevInfo.Find("#",0);if (npos >0){strDevInfo =strDevInfo.Mid(0,npos);npos =strDevInfo.Find("&",0);if (npos >0){strDevid =strDevInfo.Mid(0,npos);strDepid =strDevInfo.Mid(npos +5,strDevInfo.GetLength() -(npos +5));}}} if (strDepid.GetLength() >0){sscanf(system_config.susbvid,"%x",&ivid); sscanf(system_config.susbpid,"%x",&ipid); sscanf(strDevid,"%x",&idvid); sscanf(strDepid,"%x",&idpid); if ((bOpScucess) && (ivid ==idvid) && (ipid ==idpid) && bRemove) //如果打開了{bOpScucess =false; AddListString("USB設備移除,VID["+strDevid +"],PID[" +strDepid+"]");nReadTimeOut =TRUE;Sleep(100);TipSucess("USB移除",FALSE);ClearALLResult();// ResetContent();TerminateThread(m_hOneSendThread,0);CheckUsbResult();EnableButton(true);if(m_bOpenThreadBeginStart){StopThreadBeginStart();nBrushTimes=0,nFailTimes=0,nSuecessTimes=0;}if(m_bCreateSendThread){StopThread();}}else{if ( (ivid ==idvid) && (ipid ==idpid) && bInsert) {AddListString("USB設備插入,VID["+strDevid +"],PID[" +strDepid+"]"); TipSucess("USB插入",TRUE);TipTesttype("USB插入",TRUE);nReadTimeOut =FALSE;Sleep(1000);CheckUsbResult();startAut();if (m_chk_auto.GetCheck()){}//OnTestAll();//TestStart(0);}else{AddListString("USB設備移除,VID["+strDevid +"],PID[" +strDepid+"]");// TipTesttype("USB設備移除,VID["+strDevid +"],PID[" +strDepid+"]");bOpScucess =false;nReadTimeOut =TRUE;TipSucess("USB移除",FALSE);TipTesttype("USB移除",false);ClearALLResult();Sleep(100);ResetContent();CheckUsbResult();EnableButton(true);TerminateThread(m_hOneSendThread,0);}}}break;case DBT_DEVTYP_HANDLE:pDevHnd = (PDEV_BROADCAST_HANDLE)pHdr;break;case DBT_DEVTYP_OEM:pDevOem = (PDEV_BROADCAST_OEM)pHdr;break;case DBT_DEVTYP_PORT:pDevPort = (PDEV_BROADCAST_PORT)pHdr; break;case DBT_DEVTYP_VOLUME:pDevVolume = (PDEV_BROADCAST_VOLUME)pHdr;break;}}return 0; } 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的监控USB设备插入/拔出写法2的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。