2012-06-20 47 views
6

我已经用C#编写了一个WPF应用程序,每次打开开始菜单时都会显示该应用程序,并在菜单关闭时再次隐藏。 我宁愿这样做,而不用轮询开始菜单的状态。到目前为止,我试着听SHELLHOOK的消息,但我没有看到任何有用的东西。如何检测Windows 7开始菜单何时打开

+1

我不确定该应用程序会得到很多用户赞赏! :) –

+2

我是用户,我会很感激!我一直被迫使用Windows,我宁愿使用Gnome shell。 – Hemlock

+0

如果你是唯一的用户,那么如果代码是轮询还是不轮询,为什么会这么重要? – Dialecticus

回答

2

我不能给你写完整的代码,但这里是它背后的逻辑,使用

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

也通过Shell_TrayWnd作为lpClassName

  1. 首先找到任务栏上的手柄

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

  3. 获取开始菜单

  4. 使用GetWindowLong功能的窗口句柄,以检查它是开放与否。

+1

是的,这将工作_IF我poll_。我宁愿不投票,所以我会更新我的问题。 – Hemlock

+0

如何使用GetWindowLong来检查开始菜单是否打开? –

相关问题