Jak zakázat přepnutí na platformách Win32 úkolu

Překlady článku Překlady článku
ID článku: 226359 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek popisuje, jak zakázat přepínání úloh a dalších funkcí systému prostřednictvím kombinace kláves, například CTRL + ESC a ALT + TAB na platformy Win32.

Windows 95 a Windows 98

Aplikace lze povolit a zakázat ALT + TAB a kláves CTRL + ESC, například voláním SystemParametersInfo (SPI_SETSCREENSAVERRUNNING). Zakázat ALT + TAB a kláves CTRL + ESC, nastavte parametr uiParam PRAVDA; k povolení kombinace kláves, nastavte parametr False:
UINT nPreviousState;

// Disables task switching
SystemParametersInfo (SPI_SETSCREENSAVERRUNNING, TRUE, &nPreviousState, 0);

// Enables task switching
SystemParametersInfo (SPI_SETSCREENSAVERRUNNING, FALSE, &nPreviousState, 0);
				
Poznámka aplikace, které pomocí SystemParametersInfo (SPI_SETSCREENSAVERRUNNING) zakázat přepínání úloh musí povolit přepínání před ukončením úkolu nebo úkolu zůstává zakázána po ukončí proces přepínání.

Windows NT 4.0 Service Pack 3 a vyšší a Windows 2000

Aplikace lze zakázat ALT + TAB nebo CTRL + ESC instalace zavěšení nízkoúrovňové klávesnice. Zavěšení nízkoúrovňové klávesnice (WH_KEYBOARD_LL) je nainstalován voláním SetWindowsHookEx. Další informace o zavěšení okna v tématu Přehled "Zavěšení" v dokumentaci Platform SDK.

Ukázková procedura zavěšení nízkoúrovňové klávesnice, který zakazuje CTRL + ESC, ALT + TAB a ALT + ESC je následující:
LRESULT CALLBACK LowLevelKeyboardProc (INT nCode, WPARAM wParam, LPARAM lParam)
{
    // By returning a non-zero value from the hook procedure, the
    // message does not get passed to the target window
    KBDLLHOOKSTRUCT *pkbhs = (KBDLLHOOKSTRUCT *) lParam;
    BOOL bControlKeyDown = 0;

    switch (nCode)
    {
        case HC_ACTION:
        {
            // Check to see if the CTRL key is pressed
            bControlKeyDown = GetAsyncKeyState (VK_CONTROL) >> ((sizeof(SHORT) * 8) - 1);
            
            // Disable CTRL+ESC
            if (pkbhs->vkCode == VK_ESCAPE && bControlKeyDown)
                return 1;

            // Disable ALT+TAB
            if (pkbhs->vkCode == VK_TAB && pkbhs->flags & LLKHF_ALTDOWN)
                return 1;

            // Disable 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 Service Pack 2 a starší, Windows NT 3.51 a starších

Aplikace může zakázat CTRL + ESC celý systém nahrazením Správce úloh systému Windows NT, ale to není doporučeno.

Je aplikace spuštěna zaregistrováním zkratkové klávesy ALT + TAB a kombinace ALT + ESC voláním RegisterHotKey se aplikací lze zakázat ALT + TAB a ALT + ESC.

Další informace

Starší nástroje pro vývoj, jako je například Microsoft Visual C++ verze 5.0 a starší, nemusí obsahovat záhlaví soubory potřebné k sestavení aplikace, která používá nižší úrovně klávesnice zavěšení. Chcete-li získat nejnovější soubory záhlaví stáhnout nejnovější Platform SDK z následujícího webu společnosti Microsoft:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
Protože zavěšení nízkoúrovňové klávesnice jsou funkce konkrétní na aktualizaci Service Pack 3 a novější, definovat _WIN32_WINNT > = 0x0400 před k včetně winuser.h (nebo windows.h).

Vlastnosti

ID článku: 226359 - Poslední aktualizace: 21. listopadu 2006 - Revize: 4.3
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Win32 Application Programming Interface na těchto platformách
    • the operating system: Microsoft Windows XP
    • the operating system: Microsoft Windows 2000
    • 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
Klíčová slova: 
kbmt kbhook kbhowto kbinput KB226359 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:226359

Dejte nám zpětnou vazbu

 

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