Я думаю, что любой язык, который может работать с Windows API, должен подойти. По сути, вы слушаете сообщение Windows WM_DEVICECHANGE. Уже одно это позволит вам слушать общесистемные сообщения.
Для более конкретных сценариев посмотрите на функцию API RegisterDeviceNotification (). Излишне сегодня C / C ++ будет простым для этой задачи.