Мне нужно получить дескриптор текущего/ранее активного окна на моем рабочем столе. В основном я работаю над приложением С# Windows Forms, которое может делать снимки экрана. Я использую GetForegroundWindow PInvoke, чтобы получить этот дескриптор, но если я вызову свой код из щелчка меню, активное окно, похоже, будет настроено на окно самого меню, поэтому созданное изображение представляет собой маленький черный прямоугольник.
Приложение запускается в системном трее с контекстным меню. Я также реализовал глобальные горячие клавиши, и они отлично работают, но когда я использую контекстное меню с помощью мыши, происходит описанный выше сценарий.
Как отслеживать ранее активный дескриптор окна? Имейте в виду, что мое приложение работает как значок в трее, поэтому переопределение wndproc никогда не срабатывает. Я также пробовал формы NativeForm и MessageOnly, но они никогда не срабатывают, если приложение не имеет фокуса.
Дошли ли мы до глобальных хуков и внешних dll? Наверняка должен быть простой способ решить эту проблему? (любое да, мне нужно реализовать элементы меню, а также сочетания клавиш для конкретного сценария удобства использования.
Итак, как мне отслеживать текущее/предыдущее активное окно на моем рабочем столе из приложения С#, которое не имеет самого окна и не имеет фокуса?
Большое спасибо за любую помощь
ContextMenuStrip
? - person King King   schedule 16.08.2013