A2Pro THPT Buôn Ma Thuột [2007-2010]


You are not logged in. this website requires you to be logged in. please log in and try again !
A2Pro THPT Buôn Ma Thuột [2007-2010]

Thành lập năm 2008, từng là một diễn đàn lớp với tất cả tình cảm mình gửi gắm vào. Giờ đây là nơi lưu trữ những thứ lặt vặt mình lượm lặt được trong học tập, công việc và cuộc sống !


[C++] リムーバブルディスク(USBメモリ)検出チェック

Share

FR
Silver Dragon
Silver Dragon

Gender : Nam

Posts Posts : 1054
Thanked : 660
Coins Coins : 6408
Tham Gia : 26/08/2008
Birthday : 05/08/1920

Status Status : Sẽ ra sao nếu như, tao là mày và mày là tao ?

[C++] リムーバブルディスク(USBメモリ)検出チェック

Bài gửi by FR on 15/2/2017, 12:47

Code:

/*! 
 * @brief   リムーバブルディスク挿抜検出イベント処理
*/
LRESULT COperationMonitorDlg::OnMyDeviceChange(WPARAM wParam, LPARAM lParam)
{

    switch(wParam) {
   case DBT_DEVICEARRIVAL:         // system detected a new device
      ChkLogicalDrives("EVT:system detected a new device");
      break;
   case DBT_DEVICEREMOVECOMPLETE:   // device is gone
      ChkLogicalDrives("EVT:device is gone");
      break;
   default:
      break;
   }

   return 0;

}


/*!
 @brief リムーバブルディスク(USBメモリ)検出チェック
 @param [in] p_dev_evt : ログコメント(呼び出し元関数名)
 */
void COperationMonitorDlg::ChkLogicalDrives(char* p_dev_evt)
{

 UINT flag = 1;
 DWORD drives = GetLogicalDrives();
 BOOL is_found = FALSE;

 for (char i = 'A'; i <= 'Z'; i++) {
 // 使用可能なドライブを検索
 if (drives & flag) {
 // リムーバブルディスクかどうか
 char temp_drv[DRV_CNT] = {0};
 wsprintf(temp_drv, "%c:\\", i);
 if (GetDriveType(temp_drv) == DRIVE_REMOVABLE) {
 memcpy(RemDrv, temp_drv, DRV_CNT);
 is_found = TRUE;
 break;
 }
 }
 flag <<= 1;
 }

 if (is_found == TRUE) {
 pErrHdlMng->WriteLog(INFORMATION_TYPE, OM_ERR_NOERR, "%s リムーバブルディスク検出(ドライブ = [ %s ]", p_dev_evt, RemDrv);
 SetDlgItemText(IDC_TXT_DRIVENAME, RemDrv);
 }
 else {
 memset(RemDrv, 0, DRV_CNT);
 pErrHdlMng->WriteLog(WARNING_TYPE, OM_ERR_NOERR, "%s リムーバブルディスク未検出", p_dev_evt);
 SetDlgItemText(IDC_TXT_DRIVENAME, "未検出");
 }

}

Code:
BEGIN_MESSAGE_MAP(COperationMonitorDlg, CDialogEx)
   ON_WM_PAINT()
   ON_WM_QUERYDRAGICON()
   ON_WM_DESTROY()
   ON_WM_TIMER()
   ON_MESSAGE(WM_DEVICECHANGE, OnMyDeviceChange)
END_MESSAGE_MAP()


    Hôm nay: 25/2/2017, 05:01