Jesteś obecnie w trybie offline. Czekamy na ponowne połączenie z Internetem.

Jak wyłączyć przełączanie zadań na platformach Win32

Streszczenie
W tym artykule opisano, jak na platformach Win32 wyłączyć przełączanie zadań i inne funkcje systemowe, uruchamiane przez takie kombinacje klawiszy, jak CTRL+ESC i ALT+TAB.

Systemy Windows 95 i Windows 98

Aplikacje mogą włączać i wyłączać kombinacje klawiszy ALT+TAB i CTRL+ESC, na przykład przez wywołanie parametru SystemParametersInfo (SPI_SETSCREENSAVERRUNNING). Aby wyłączyć kombinacje klawiszy ALT+TAB i CTRL+ESC, parametr uiParam należy ustawić na TRUE; aby te kombinacje klawiszy były włączone, parametr ten powinien mieć ustawienie FALSE:
UINT nPreviousState;// Wyłącza przełączanie zadańSystemParametersInfo (SPI_SETSCREENSAVERRUNNING, TRUE, &nPreviousState, 0);// Włącza przełączanie zadańSystemParametersInfo (SPI_SETSCREENSAVERRUNNING, FALSE, &nPreviousState, 0);				
Uwaga: Aplikacje wykorzystujące SystemParametersInfo (SPI_SETSCREENSAVERRUNNING) w celu wyłączenia przełączania zadań muszą włączyć tę funkcję przed zamknięciem, ponieważ inaczej pozostanie ona wyłączona po zakończeniu procesu.

Windows NT 4.0 z dodatkiem Service Pack 3 i nowszym oraz Windows 2000

Aplikacje mogą wyłączyć kombinację klawiszy ALT+TAB lub CTRL+ESC przez zainstalowanie haka klawiatury niskiego poziomu. Hak klawiatury niskiego poziomu (WH_KEYBOARD_LL) jest instalowany przez wywołanie funkcji SetWindowsHookEx. Aby uzyskać więcej informacji o hakach systemu Windows, należy zapoznać się z omówieniem tematu „Haki” w dokumentacji zestawu SDK platformy.

Poniżej przedstawiono przykładową procedurę haka klawiatury niskiego poziomu, która wyłącza kombinacje klawiszy CTRL+ESC, ALT+TAB i ALT+ESC:
LRESULT CALLBACK LowLevelKeyboardProc (INT nCode, WPARAM wParam, LPARAM lParam){    // Ponieważ procedura haka zwraca niezerową wartość,    // komunikat nie jest przekazywany do okna docelowego    KBDLLHOOKSTRUCT *pkbhs = (KBDLLHOOKSTRUCT *) lParam;    BOOL bControlKeyDown = 0;    switch (nCode)    {        case HC_ACTION:        {            // Sprawdź, czy jest wciśnięty klawisz CTRL            bControlKeyDown = GetAsyncKeyState (VK_CONTROL) >> ((sizeof(SHORT) * 8) - 1);                        // Wyłącz kombinację CTRL+ESC            if (pkbhs->vkCode == VK_ESCAPE && bControlKeyDown)                return 1;            // Wyłącz kombinację ALT+TAB            if (pkbhs->vkCode == VK_TAB && pkbhs->flags & LLKHF_ALTDOWN)                return 1;            // Wyłącz kombinację ALT+ESC            if (pkbhs->vkCode == VK_ESCAPE && pkbhs->flags & LLKHF_ALTDOWN)                return 1;            break;        }        default:            break;    }    return CallNextHookEx (hHook, nCode, wParam, lParam);}				

Windows NT 4.0 z dodatkiem Service Pack 2 i starsze wersje, Windows NT 3.51 i starsze wersje

Aplikacje mogą wyłączyć kombinację klaw iszy CTRL+ESC w całym systemie, zastępując Menedżera zadań systemu Windows NT, ale rozwiązanie to nie jest zalecane.

Aplikacje mogą wyłączyć kombinacje klawiszy ALT+TAB i ALT+ESC w czasie, gdy są uruchomione, rejestrując klawisze dostępu dla kombinacji klawiszy ALT+TAB i ALT+ESC przez wywołanie parametru RegisterHotKey.
Więcej informacji
Starsze narzędzia do projektowania, na przykład Microsoft Visual C++ w wersji 5.0 lub starszej, mogą nie zawierać plików nagłówka niezbędnych do utworzenia aplikacji wykorzystującej haki klawiatury niskiego poziomu. Aby uzyskać najnowsze pliki nagłówka, pobierz najnowszą wersję zestawu SDK dla platformy z następującej witryny firmy Microsoft w sieci Web:Ponieważ haki klawiatury niskiego poziomu są funkcją specyficzną dla systemu Windows NT 4.0 z dodatkiem Service Pack 3 i nowszych, należy przed dołączeniem pliku winuser.h (lub windows.h) zdefiniować parametr low_WIN32_WINNT >= 0x0400.
SystemParametersInfo SetWindowsHookEx Hooks SPI_SCREENSAVERRUNNING SPI_SETSCREENSAVERRUNNING WH_KEYBOARD_LL
Właściwości

Identyfikator artykułu: 226359 — ostatni przegląd: 01/23/2007 17:40:00 — zmiana: 4.2

Microsoft Win32 Application Programming Interface

  • kbhowto kbinput kbhook KB226359
Opinia