Помните, что окна в других приложениях, особенно в Outlook, редко бывают формами Windows Forms. Вам нужно много P / Invoke, чтобы сделать эту работу. Первое, что вам нужно, это SetWindowsHookEx (), чтобы установить хук WH_KEYBOARD_LL, чтобы вы могли обнаружить нажатие клавиши. Это хорошо гуглится.
Далее вам нужен GetForegroundWindow (), который возвращает вам дескриптор окна с фокусом.
Далее вам нужен GetWindowThreadProcessId (), который позволяет вам узнать идентификатор процесса, которому принадлежит окно. Затем вы можете использовать Process.GetProcessById (), чтобы получить объект Process для программы. Там много информации, свойство Name говорит вам, что это Outlook.exe
Информацию о самом окне получить сложнее. Не так много, но вы можете использовать GetWindowText (), чтобы получить текст, отображаемый на панели заголовков. Если это вообще полезно, вы можете использовать EnumChildWindows для перечисления дочерних элементов управления в окне.
Посетите pinvoke.net для получения необходимых деклараций P / Invoke.