如何检测Windows 7开始菜单何时打开

Hem*_*ock 6 c# wpf windows-7

我在C#中编写了一个WPF应用程序,我想在每次打开开始菜单时显示它,并在菜单关闭时再次隐藏.我更愿意在不轮询开始菜单状态的情况下这样做.到目前为止,我已经尝试过收听SHELLHOOK消息,但我没有看到任何有用的信息.

Raj*_*ian 2

我无法为您编写完整的代码,但这是其背后的逻辑,

  1. 首先使用找到任务栏的句柄

    [DllImport("user32.dll", SetLastError = true)]
    public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
    
    Run Code Online (Sandbox Code Playgroud)

    Shell_TrayWnd作为 lpClassName传递

  2. 通过模拟单击按钮激活开始菜单。

  3. 获取开始菜单的窗口句柄

  4. 使用GetWindowLong函数检查它是否打开。