Functions > Misc >


BlockInput

D�sactive/Active la souris et le clavier.

BlockInput ( flag )

Param�tre

flag     $BI_DISABLE (1) = D�sactive les entr�es utilisateur
    $BI_ENABLE (0) = Active les entr�es utilisateur

Les constantes sont d�finies dans "AutoItConstants.au3".

Valeur de retour

Succ�s: Retourne 1.
�chec: Retourne 0. D�j� activ� ou #RequireAdmin absent.

Remarques

Le tableau ci-dessous montre le comportement de BlockInput() en fonction de la version de Windows; toutefois, quel que soit la plateforme, l'appui de Ctrl+Alt+Del r�active les entr�es du fait des caract�ristiques de l'API de Windows.
Syst�me d'exploitation R�sultat de BlockInput()
Windows XP L'entr�e utilisateur est bloqu�e et AutoIt peut simuler les entr�es de la souris et du clavier. Voir les remarques ci-dessous pour un probl�me avec Windows XP SP1.
Windows Vista et plus L'entr�e utilisateur est bloqu�e et AutoIt peut simuler les entr�es de la souris et du clavier si #RequireAdmin est utilis�.

Un correctif Windows a �t� r�alis� pour un bug sous Windows XP SP1 qui emp�che l'envoi de la touche Alt (via la fonction Send()) tant que BlockInput() est active. Ce bug a �t� corrig� dans Windows XP SP2 et sup�rieur.

BlockInput() affecte seulement les entr�es utilisateur. Les entr�es provenant des fonctions comme Send() ou MouseMove() continuent � fonctionner.

En relation

Send

Exemple

#RequireAdmin

#include <AutoItConstants.au3>

Example()

Func Example()
    ; Ex�cute le Bloc-notes
    Run("notepad.exe")

    ; Attend 10 secondes pour que la fen�tre du bloc-notes apparaisse.
    Local $hWnd = WinWait("[CLASS:Notepad]", "", 10)

    ; D�sactive les entr�es utilisateur de la souris et du clavier.
    BlockInput($BI_DISABLE)

    ; Attend 2 secondes.
    Sleep(2000)

    ; Envoie la touche 'F5' au contr�le d'�dition de Bloc-notes pour afficher la date et l'heure. Le handle retourn� par WinWait est utilis� pour le param�tre 'titre' de ControlSend.
    ControlSend($hWnd, "", "Edit1", "{F5}")

    ; Active les entr�es utilisateur � partir de la souris et du clavier.
    BlockInput($BI_ENABLE)

    ; Attend 2 secondes.
    Sleep(2000)

    ; Ferme la fen�tre du Bloc-notes en utilisant le handle retourn� par WinWait.
    WinClose($hWnd)

    ; Maintenant, une fen�tre s'ouvrira et demandera d'enregistrer les modifications, le nom de classe de la fen�tre est appel�
    ; "#32770" et la simulation de la touche "TAB" pour passer au deuxi�me bouton qui simule  "ENTER" pour ne pas  "Enregistrer le fichier"
    WinWaitActive("[CLASS:#32770]")
    Sleep(500)
    Send("{TAB}{ENTER}")
EndFunc   ;==>Example