Я пытаюсь "зацепить" сообщения окна, чтобы обнаружить минимизацию / максимизацию. Я оглянулся и думаю, что единственное / лучшее решение для этого - подключиться к сообщениям окна, проверить сообщение WM_WINDOWPOSCHANGED, а затем проверить его состояние.
Я столкнулся с проблемой.
System.Windows.Interop.HwndSource source = System.Windows.Interop.HwndSource.FromHwnd(System.Diagnostics.Process.GetProcessesByName("notepad")[0].MainWindowHandle);
System.Windows.Interop.HwndSourceHook hook = new System.Windows.Interop.HwndSourceHook(WndProc);
source.AddHook(hook);
Это даст мне «Ссылку на объект, не установленную на экземпляр объекта». ошибка "source.AddHook ...". При останове также становится ясно, что исходная переменная равна нулю. Другими словами: не удается получить HwndSource в первой строке.
Я знаю, что это возможно с помощью «WindowInteropHelper», но именно тогда у вас есть фактическое окно в качестве Windows.Window, но в моей ситуации я не могу.
Любые обходные пути / решения будут очень признательны,
Рене Сакерс
P.S. Я на 100% уверен, что Блокнот работает, когда код выполняется, и ему удается найти его, и его дескриптор главного окна.