當前位置:編程學習大全網 - 網站源碼 - 想用c++寫壹個監測在win7下的usb插拔監測

想用c++寫壹個監測在win7下的usb插拔監測

#include?<windows.h>

#include?<dbt.h>

#include?<stdio.h>

#include?<math.h>

LRESULT?CALLBACK?WndProc(HWND?h,?UINT?msg,?WPARAM?wp,?LPARAM?lp)

{

if?(msg?==?WM_DEVICECHANGE)?{

if?((DWORD)wp?==?DBT_DEVICEARRIVAL)?{

DEV_BROADCAST_VOLUME*?p?=?(DEV_BROADCAST_VOLUME*)?lp;

if?(p->dbcv_devicetype?==?DBT_DEVTYP_VOLUME)?{

int?l?=?(int)(log(double(p->dbcv_unitmask))?/?log(double(2)));

printf("啊……%c盤插進來了\n",?'A'?+?l);

}

}?else?if?((DWORD)wp?==?DBT_DEVICEREMOVECOMPLETE)?{

DEV_BROADCAST_VOLUME*?p?=?(DEV_BROADCAST_VOLUME*)?lp;

if?(p->dbcv_devicetype?==?DBT_DEVTYP_VOLUME)?{

int?l?=?(int)(log(double(p->dbcv_unitmask))?/?log(double(2)));

printf("啊……%c盤被拔掉了\n",?'A'?+?l);

}

}

return?TRUE;

}?else?return?DefWindowProc(h,?msg,?wp,?lp);

}

int?main()?{

WNDCLASS?wc;

ZeroMemory(&wc,?sizeof(wc));

wc.lpszClassName?=?TEXT("myusbmsg");

wc.lpfnWndProc?=?WndProc;

RegisterClass(&wc);

HWND?h?=?CreateWindow(TEXT("myusbmsg"),?TEXT(""),?0,?0,?0,?0,?0,

0,?0,?GetModuleHandle(0),?0);

MSG?msg;

while(?GetMessage(&msg,?0,?0,?0)?>?0?)?{

TranslateMessage(&msg);

DispatchMessage(&msg);

}

}

  • 上一篇:個人網絡音樂源代碼
  • 下一篇:申彗星三輯銷量排名如何?
  • copyright 2024編程學習大全網