Como desativar a alternância em plataformas Win32 de tarefas

Traduções deste artigo Traduções deste artigo
ID do artigo: 226359 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo descreve como desativar a alternância de tarefas e outras funções de sistema acessadas através de combinações de teclas, como CTRL+ESC e ALT+TAB em plataformas Win32.

O Windows 95 e Windows 98

Aplicativos podem habilitar e desabilitar ALT+TAB e CTRL+ESC, por exemplo, chamando SystemParametersInfo (SPI_SETSCREENSAVERRUNNING). Para desativar ALT+TAB e CTRL+ESC, defina o parâmetro uiParam como TRUE ; para ativar as combinações de teclas, defina o parâmetro como FALSE :
UINT nPreviousState;

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

// Enables task switching
SystemParametersInfo (SPI_SETSCREENSAVERRUNNING, FALSE, &nPreviousState, 0);
				
aplicativos Observação que usam SystemParametersInfo (SPI_SETSCREENSAVERRUNNING) para desativar a alternância de tarefas devem ativar a alternância antes de sair de tarefas ou alternância permanece desabilitado depois que o processo termina de tarefas.

Windows NT 4.0 Service Pack 3 e posterior e o Windows 2000

Aplicativos podem desativar ALT+TAB ou CTRL+ESC instalando um gancho de nível inferior do teclado. Um gancho de nível inferior do teclado (WH_KEYBOARD_LL) é instalado por chamar SetWindowsHookEx. Para obter mais informações na janela ganchos consulte a visão geral "Ganchos" na documentação do SDK.

Este é um procedimento de gancho de teclado nível baixo de exemplo que desativa CTRL+ESC, ALT + TAB e ALT + ESC:
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 e anterior, Windows NT 3.51 e anterior

Aplicativos podem desativar todo o sistema CTRL+ESC, substituindo o Gerenciador de tarefas do Windows NT, mas isso não é recomendado.

Aplicativos podem desativar ALT+TAB e ALT + ESC quando o aplicativo é executado registrando teclas de atalho para o ALT + TAB e combinações ALT + ESC chamando RegisterHotKey.

Mais Informações

Ferramentas de desenvolvimento mais antigas, como o Microsoft Visual C++ versão 5.0 e versões anteriores, podem não conter os arquivos de cabeçalho necessários para criar um aplicativo que usa ganchos de nível inferior do teclado. Para obter os arquivos de cabeçalho mais recentes, baixe o SDK de plataforma mais recente do site da Microsoft:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
Como ganchos de nível inferior do teclado são um recurso específico para o Windows NT 4.0 Service Pack 3 e posterior, definir _WIN32_WINNT > = 0x0400 antes para incluindo winuser.h (ou windows.h).

Propriedades

ID do artigo: 226359 - Última revisão: terça-feira, 21 de novembro de 2006 - Revisão: 4.3
A informação contida neste artigo aplica-se a:
  • Interface de Programação de Aplicativos do Microsoft Win32 nas seguintes plataformas
    • 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
Palavras-chave: 
kbmt kbhook kbhowto kbinput KB226359 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 226359

Submeter comentários

 

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