2009-02-28 10 views
7

Chcę utworzyć aplikację narzędzie Windows, która może zostać wywołana w dowolnym momencie z poziomu innych aplikacji przy użyciu skrótu klawiaturowego, npJak zarejestrować skrótu zwyczaj Klawiatura dla aplikacji Windows

Win + T

Ctrl + T

Alt + T

Ctrl + Alt + T

Ctrl + Przesunięcie + T

Co kombinacji klawiszy można użyć i jak skonfigurować te w rejestrze systemu Windows?

(Jeśli skrót jest używany przez inną aplikację, należy oczywiście nie działa.)

+0

Czy chcesz ustawić te skróty programowo lub ręcznie? – Sung

+0

Co to jest STRG? Czy to jest to samo co CTRL? –

+1

STRG to niemiecka nazwa CTRL :) –

Odpowiedz

6

Opcja dla robią to programowo, gdy początek aplikacja jest wywołanie tej Windows API:

RegisterHotKey(IntPtr hwnd, int id, int fsModifiers, int vk); 

I do wyrejestrowania nazywają to API:

UnregisterHotKey(IntPtr hwnd, int id); 

Oba występują w user32 API

http://www.pinvoke.net/search.aspx?search=RegisterHotKey&namespace=[All]

+0

Działa dla programowego przypisywania klawiszy skrótu – Sung

+0

Działa tylko wtedy, gdy program działa poprawnie? –

+0

@ TimLovell-Smith yes correct –

1

Jeśli aplikacja (lub skrót do niego) jest dostępna na pulpicie, można kliknąć prawym przyciskiem myszy na Pobierz menu kontekstowe, wybierz Właściwości i wprowadź tam skrót klawiszowy. Po prostu kliknij pole tekstowe Skrót klawiszowy i naciśnij żądany klawisz skrótu.

Mam przypisane WIN + C do mojego kalkulatora i WIN + V do mojego regulacją głośności.

+0

Działa do ręcznego przypisywania klawiszy skrótu – Sung

+0

To zabawne. Wydaje się, że działa to tylko w przypadku "natywnych" aplikacji. Jak każda aplikacja wykonana w WinForm C# nie ma tego ustawienia w oknie właściwości po kliknięciu prawym przyciskiem myszy pliku na pulpicie –

+1

Zastanawiasz się [na SuperUser] (http://superuser.com/q/424782/69392), a tam jest scentralizowana pamięć dla tych skrótów klawiszowych. Podejrzewam, że znajduje się w rejestrze. Teraz wydaje się, że sugerujesz, że zestaw skrótów "na twoim pulpicie" jest skanowany w poszukiwaniu odwzorowań klawiszy skrótu. Jakieś wskazówki po więcej szczegółów? – Lumi

1

Jeśli potrzebujesz bardziej zaawansowanego scenariusza do tego, co oferuje skrót powłoki, powinieneś zacząć od przeczytania Win32 Hooks i Hooks Overview.

Dokładniej, musisz dodać hak WH_KEYBOARD, używając funkcji SetWindowsHookEx. Musisz również odłączyć przez UnhookWindowsHookEx, kiedy skończysz.

Istnieje stary artykuł od Dino Esposito, jak wykonać Windows Hooks in .NET przez jakiegoś współzawodnika Win32.

+0

Działa dla programowego przypisywania klawiszy skrótu – Sung

0

Obawiam się, że nie jest to coś, co można zrobić, po prostu ustawiając wartości w rejestrze, tak jak zostało to wskazane w innych odpowiedziach niezbędnych do wywołania niektórych procedur API Windows, aby to osiągnąć.

Powiązane problemy