Для решения этой задачи вы должны отслеживать входящие сообщения explorer.exe с помощью хуков Win32 API. Если вы не знаете о Win32 API, то я предлагаю вам прочитать книгу об этом и потратить некоторое время на практику, потому что Win32 API и его хуки не могут быть объяснены в коротких словах этого ответа.
C # не является подходящим инструментом для подобных вещей, по крайней мере, перехват должен быть сделан в C (++), так что вам нужно изучить его. Реально говоря, что изучение Win32 API вместе с C (++) может занять год или два, прежде чем задача станет решаемой.