Comment faire pour désactiver les tâches de commutation sur les plates-formes Win32

Traductions disponibles Traductions disponibles
Numéro d'article: 226359 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article explique comment désactiver l'indicateur de tâche et d'autres fonctions système accessibles par l'intermédiaire de combinaisons de touches telles que CTRL + ÉCHAP et ALT + TAB sur plates-formes Win32.

Windows 95 et Windows 98

Applications peuvent activer et désactiver ALT + TAB et CTRL + ÉCHAP, par exemple, en appelant SystemParametersInfo (SPI_SETSCREENSAVERRUNNING). Pour désactiver ALT + TAB et CTRL + ÉCHAP, définissez le paramètre uiParam sur Vrai ; pour activer les combinaisons de touches, définissez le paramètre sur FALSE :
UINT nPreviousState;

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

// Enables task switching
SystemParametersInfo (SPI_SETSCREENSAVERRUNNING, FALSE, &nPreviousState, 0);
				
note les applications qui utilisent le SystemParametersInfo (SPI_SETSCREENSAVERRUNNING) pour désactiver l'indicateur de tâche doivent activer les tâches de commutation avant de quitter ou tâche commutation reste désactivé une fois le processus terminé.

Windows NT 4.0 Service Pack 3 ou version ultérieure et Windows 2000

Applications peuvent être désactivée ALT + TAB ou CTRL + ÉCHAP en installant un hook de clavier de bas niveau. Un hook de clavier de bas niveau (WH_KEYBOARD_LL) est installé en appelant SetWindowsHookEx. Pour plus d'informations sur la fenêtre hooks consultez la vue d'ensemble de «Hooks» dans la documentation du Kit de développement Platform SDK.

Le texte suivant est un exemple de procédure de hook clavier de bas niveau qui désactive CTRL + ÉCHAP, ALT + TAB et ALT + ÉCHAP :
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 et versions antérieures, Windows NT 3.51 et versions antérieur

Les applications peuvent désactiver CTRL + ÉCHAP à l'échelle du système en remplaçant le Gestionnaire des tâches de Windows NT, mais ce n'est pas recommandé.

Applications peuvent désactiver ALT + TAB et ALT + ECHAP lorsque l'application est en cours d'exécution en vous inscrivant des touches de raccourci pour les ALT + TAB et les combinaisons ALT + ECHAP en appelant RegisterHotKey.

Plus d'informations

Anciens outils de développement, tels que Microsoft Visual C++ Version 5.0 et versions antérieures, peuvent contient pas les fichiers d'en-tête nécessaires pour construire une application qui utilise des crochets de clavier de bas niveau. Pour obtenir les fichiers d'en-tête plus récentes, télécharger la dernière version du SDK de plate-forme à partir de site Microsoft suivant :
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
Dans la mesure où les crochets de clavier de bas niveau sont une fonctionnalité spécifique à Windows NT 4.0 Service Pack 3 et versions ultérieure, définir _WIN32_WINNT > = 0x0400 antérieures à winuser.h (ou windows.h).

Propriétés

Numéro d'article: 226359 - Dernière mise à jour: mardi 21 novembre 2006 - Version: 4.3
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Win32 Application Programming Interface sur le système suivant
    • 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
Mots-clés : 
kbmt kbhook kbhowto kbinput KB226359 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 226359
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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