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

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 226359 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

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:
http://www.microsoft.com/msdownload/platformsdk/setuplauncher.htm
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.

Właściwości

Numer ID artykułu: 226359 - Ostatnia weryfikacja: 23 stycznia 2007 - Weryfikacja: 4.2
Informacje zawarte w tym artykule dotyczą:
  • Microsoft Win32 Application Programming Interface na następujących platformach
    • Microsoft Windows XP Professional
    • Microsoft Windows 2000 Standard Edition
    • Microsoft Windows NT 4.0
    • Microsoft Windows NT 3.51 Service Pack 5
    • Microsoft Windows Millennium Edition
    • Microsoft Windows 98 Standard Edition
    • Microsoft Windows 95
Słowa kluczowe: 
kbhowto kbinput kbhook KB226359

Przekaż opinię

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com