Problem ze skrótem Alt+T

0

Mam pewną aplikację działającą w tle, aby wyłączyć aplikację chcĘ uzyć kombinacji klawiszy Alt+T (lub dowolna inna litera alfabetu). Wywołanie robię tak:

            [DllImport("user32.dll")]
            private static extern int GetKeyState(byte Klawisz);
            [DllImport("user32.dll")]
            private static extern bool SetKeyboardState(byte[] Klawisze);
            private bool Wywolanie()
            {
                bool Sprawdz = false;
                if ((GetKeyState(Convert.ToByte(Keys.Alt)) > 0) && (GetKeyState(Convert.ToByte(Keys.T)) > 0))
                {
                    //wcisnieto klawisz 
                    Sprawdz = true;
                    //zwalniam klawiature
                    byte[] status = new byte[256];
                    status[Convert.ToByte(Keys.Alt)] = 0x00;
                    status[Convert.ToByte(Keys.T)] = 0x00; 
                    SetKeyboardState(status);
                }
                return Sprawdz;
            }
//timer sprawdza czy wciśnięto klawisz co 10 setnych sekundy
            private timer1_Tick(object sender, EventArgs e)
            {
                if (Wywolanie())     
                    Application.Exit();
            }

Wywołanie mi działa, ale nie zwalnia mi klawiszy i ciągle klawisze są włączone (np. w notatniku ciągle powtarza mi literę "T"), dlaczego?
Wiem że można do tego użyć zdarzenia keybd_event(); ale z min są jeszcze większe problemy (jak piszę coś np. w notatkinu to po wciśnięciu kombinacji klawiszy w notatniku pisze mi tą kombinację).

0

Ma ktoś jakiś pomysł jak ujarzmić tą kombinację? Męczę się z tym już od dłuższego czasu i nic sensownego nie wymyśliłem. Pomóżcie dobrzy ludzie:)

0 użytkowników online, w tym zalogowanych: 0, gości: 0