【发布时间】:2011-12-13 04:33:51
【问题描述】:
我正在尝试“挂钩”到窗口的消息以检测最小化/最大化。我环顾四周,认为这样做的唯一/最佳解决方案是挂钩窗口的消息,并检查 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 可用时,但在我的情况下我没有。
非常感谢任何解决方法/解决方案,
雷内·萨克尔斯
附注我 100% 确定在执行代码时记事本正在运行,并且它设法找到它,并且它是主窗口句柄。
【问题讨论】: