public interface IGenericFace<T> where T : SomeBaseClass
Убедитесь, что процесс, на котором размещается ловушка, имеет тот же уровень привилегий, что и приложение, которое вы собираетесь перехватить. Клавиатура и другие хуки представляют собой высокий риск для безопасности, поэтому Vista и более поздние версии были изменены, чтобы разрешать общесистемные хуки в процессах в рамках общего определенного контекста безопасности. Другими словами, если вы запускаете хост-процесс ловушки с правами пользователя, он будет перехватывать только те процессы, которые находятся на том же уровне привилегий. Если подумать, это имеет смысл, потому что вы не хотите, чтобы процесс уровня пользователя мог вводить код в процесс уровня администратора. Это плохо во многих отношениях.