载入中,请稍候……

c++监控u盘插入拔出

Admin 于 2008-08-25 06:27:02 发表C/C++

订阅: http://www.miniboke.com/Feed/Article_6.aspx
引用: http://www.miniboke.com/Trackback/qvsTtqTHQtSIMXambggH.aspx (UTF-8)
LevenBlog2 Beta1发布[提供下载] < c++监控u盘插入拔出 > arp攻击源代码(收集)

  1. #include <windows.h> 
  2. #include <dbt.h> 
  3.  
  4. char FirstDriveFromMask(ULONG unitmask) 
  5.     char i; 
  6.     for (i = 0; i < 26; ++i) 
  7.     { 
  8.         if (unitmask & 0x1) 
  9.             break
  10.         unitmask = unitmask >> 1; 
  11.     } 
  12.     return (i + 'A'); 
  13.  
  14. bool Application::winEventFilter(MSG *msg, long *result) 
  15.     bool ret = false
  16.     if (msg->message != WM_DEVICECHANGE) 
  17.         return ret; 
  18.  
  19.     PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)msg->lParam; 
  20.     static int iCnt = 0; 
  21.     char szDrivePath[3]; 
  22.  
  23.     switch (msg->wParam) 
  24.     { 
  25.     case DBT_DEVICEARRIVAL: 
  26.         if (lpdb->dbch_devicetype == DBT_DEVTYP_VOLUME) 
  27.         { 
  28.             PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb; 
  29.             //if (lpdbv->dbcv_flags & DBTF_MEDIA) 
  30.             { 
  31.                 sprintf(szDrivePath, "%c:\\"
  32.                         FirstDriveFromMask(lpdbv->dbcv_unitmask)); 
  33.                 const wchar_t *path = QString(szDrivePath).toStdWString().c_str(); 
  34.                 if (szDrivePath[0] > 'B' 
  35.                     && GetDriveType(path) == DRIVE_REMOVABLE) 
  36.                 { 
  37.                     iCnt++; 
  38.                     if (iCnt%3 == 0) 
  39.                     { 
  40.                         qDebug() << "Incoming: " << szDrivePath; 
  41.                         ret = true
  42.                     } 
  43.                 } 
  44.             } 
  45.         } 
  46.         break
  47.     case DBT_DEVICEREMOVECOMPLETE: 
  48.         break
  49.     default:; 
  50.     } 
  51.     return ret; 

 

被阅517次, 0投一票U盘
  • 看完了要说点啥么?
  • 昵称 (不填说不了话)
  • 信箱地址 (不会被公开,但是不填也说不了话)
  • 网址 (这个不填也成)

Powered by MiniBoke v2.0.0.8 Build 0828

Copyright © 2008 迷你博客. All rights reserved.

粤ICP备07500939号