RegisterHotKey i problem z zawłaszczaniem zarejestrowanych klawiszy

0

Piszę większy program, którego sednem jest wykorzystywanie globalnych skrótów klawiszowych.
Problem w tym, że wtedy inne programy nie otrzymują zarejestrowanych klawiszów:
np. rejestruję [1] (w tym programie jest to sensowny skrót) to żaden inny program nie reaguje na naciśnięcie [1] (w notatniku się nie pojawia się "1" po naciśnięciu itp).

Piszę w VC#, temat celowo założyłem w C/C++ - funkcje są importowane z C++.

Czy da się jakoś nieblokująco obsługiwać globalne hotkeye?
Ew. przekazywać dalej oryginalne zdarzenia przy tej funkcji?

Fragmenty kodu:

private static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vk);
...
public CHotkeys::CHotkeys(int modifier, Keys key, Form form)
        {
            this.modifier = modifier;
            this.key = (int)key;
            this.hWnd = form.Handle;
            id = this.GetHashCode();
        }
 public bool CHotkeys::Register()
        {
            return RegisterHotKey(hWnd, id, modifier, key);
        }
...
x = new CHotkeys(mod, key, hWnd);
x.Register();
...
protected override void WndProc(ref Message m)
        {
            if (m.Msg == CHotkeys.WM_HOTKEY_MSG_ID) Managment.Parse(m);
            base.WndProc(ref m);
        }
0

W builderze sprawdzasz wiadomosc i ustawiasz zmienna handled na true jesli obsluzyles lub false jesli cie nie interesuje... wtedy puszczasz ja dalej ... Probowales jako paraametr w RegisterHotKey uchwyt do okna dac NULL? na msdnie pisze ze jesli da sie NULL wiadomosc musi isc do kolejki i byc przetworzona..

Ale ogolnie to nie wiem czy to o to chodzi..

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