C# winform MDI 에서 USB 인식 WndProc 가 안되는 문제

안녕하세요. 작업 환경은 프레임워크 4.7.2 이며

USB 를 PC에 연결시 연결을 CATCH 하기 위해 다음과 같이 테스트용 코드를 짰는데
SDI 에서는 정상적으로 “확인” 메세지가 뜨는 반면, MDI 에서는 “확인” 메세지가 뜨질 않습니다.
디버깅을 해보면 MDI 에서 usb 연결시 WndProc 메서드가 실행이 안되는 거 같습니다.
이리저리 검색을 해봐도 딱히 해결책을 못찾아 질문 드려봅니다.
읽어주셔서 감사합니다.

using System;
using System.Diagnostics;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        UInt32 WM_DEVICECHANGE = 0x0219;
        UInt32 DBT_DEVTUP_VOLUME = 0x02;
        UInt32 DBT_DEVICEARRIVAL = 0x8000;
        UInt32 DBT_DEVICEREMOVECOMPLETE = 0x8004;
        

        public Form1()
        {
            InitializeComponent();
        }

        protected override void WndProc(ref Message m)
        {
            if (m.Msg == WM_DEVICECHANGE)  //디바이스 연결
            {
                MessageBox.Show("확인");
            }

            base.WndProc(ref m);
        }
    }
}
2개의 좋아요

다음의 글을 참고하세요.

Windows: 153. C# - USB 장치의 연결 및 해제 알림을 위한 WM_DEVICECHANGE 메시지 처리 (sysnet.pe.kr)

5개의 좋아요