6

スタートメニューを開くたびに表示し、メニューを閉じると再び非表示にしたいC#でWPFアプリケーションを作成しました。スタートメニューの状態をポーリングせずにこれを行うことをお勧めします。これまでのところ、SHELLHOOK メッセージを聞いてみましたが、有用なものは何も見当たりません。

4

1 に答える 1

2

完全なコードを書くことはできませんが、その背後にあるロジックは次のとおりです。

  1. まず、次を使用してタスク バーのハンドルを見つけます。

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

    Shell_TrayWndlpClassName としても渡す

  2. クリックボタンをシミュレートして、スタートメニューをアクティブにします。

  3. スタートメニューのウィンドウハンドルを取得する

  4. GetWindowLong関数を使用して、開いているかどうかを確認します。

于 2012-06-20T13:45:23.310 に答える