Your idea is brilliant but your question is not clear. Are you trying to detect that a usb modem is connected to your PC from your C# application or your PC can not read your modem.
If you want your C# app to detect that a modem has been connected to your PC and automatically detect the PORT, PARITY, BAUDRATE etc. then with my little idea i think you have to use the serial port component in .net or grammatically write your code.
This shoud help