2012-06-20 20 views
6

C# menüsünde bir WPF uygulaması yazdım, bu menüde her başlatıldığında göstermek istediğim bir menü var ve menü kapatıldığında tekrar gizlen. Başlat menüsünün durumunu sorgulamadan bunu yapmayı tercih ederim. Şimdiye kadar SHELLHOOK mesajlarını dinlemeyi denedim ancak yararlı bir şey göremiyorum.Windows 7 başlat menüsü ne zaman açılacağını nasıl algılayabilirim

+1

Bu uygulamanın çok fazla kullanıcı takdiri alacağından emin değilim! :) –

+2

Kullanıcıyım, takdir edeceğim! Windows'u kullanmaya zorlandım ve Gnome-shell'de olmayı tercih ediyorum. – Hemlock

+0

Tek kullanıcı sizseniz o zaman kodun yoklanması veya yapılmaması neden önemlidir? – Dialecticus

cevap

2

burada seni tam kod yazmak edilemez ama

  1. İlk ayrıca lpClassName

  2. olarak Shell_TrayWnd geçmesi

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

    kullanarak görev çubuğu için kolu bulmak, bunun arkasında mantık

  3. Tıklatma benzetimini yaparak Başlat Başlat menüsünü etkinleştirin.

  4. açık olup olmadığını kontrol etmek için Başlat Menüsü

  5. Kullanım GetWindowLong işlevi pencere tanıtıcısı alın.

+1

Evet, bu çalışacağım _if I poll_. Sorgulamamayı tercih ederim, bu yüzden sorumu güncelleyeceğim. – Hemlock

+0

Başlat Menüsü açık olup olmadığını kontrol etmek için GetWindowLong'u nasıl kullanırsınız? –