Page 1 sur 1

[Ex] Attendre que l'utilisateur tape un mot-clef

Posté : ven. 01 nov. 2013 17:32
par timmalos
Bonjour à tous. Ca fait longtemps que j'ai plus posté d'exemples on va y remédier avec un petit code sans pretention.
Au travail il n'est pas rare qu'un collégue envoie un mail à toute l'equipe disant qu'on offre les croissants le lendemain dès qu'on laisse sa session ouverte mais qu'on n'est pas à sa place de travail.

Pour m'amuser j'ai créé un script qui s'il detecte un certain mot-clef tapé, comme "croissant" lock immédiatement ma session.
Voilà le script:

Code : Tout sélectionner

#include <Misc.au3>
Global $hDLL = DllOpen("user32.dll")
Local $word=StringSplit("croissants","")


While 1
    If WaitWord($word)=1 Then
        Msgbox("0","","Attention voisin, tu as tapé un mot interdit !")
    EndIf
    Sleep(10)

WEnd
DllClose($hDLL)


Func WaitWord($arr,$count=1)
    If $arr[0]<1 Then Return -1

    ;Condition fin de recursivité
    If $count >  $arr[0] Then
        Return 1
    EndIf

    ConsoleWrite("Wait for letter "&$arr[$count]&@CRLF)
    If (WaitKey(Hex(Asc($arr[$count])-32))=1) Then
        Return WaitWord($arr,$count + 1)
    Else
        Return 0
    EndIf
EndFunc

Func WaitKey($key,$timeout=2000)
    $t= TimerInit()
    While TimerDiff($t)<=$timeout
        If _IsPressed($key, $hDLL) Then ;Majuscules
            While _IsPressed($key, $hDLL)
                Sleep(10)
            WEnd
            Return 1
        EndIf
    WEnd
    return 0
EndFunc
Have fun 8)

Re: [Ex] Attendre que l'utilisateur tape un mot-clef

Posté : ven. 01 nov. 2013 18:13
par mikell
Damned
"croignéssants" est un mot interdit :shock:

Re: [Ex] Attendre que l'utilisateur tape un mot-clef

Posté : sam. 02 nov. 2013 20:15
par timmalos
Ahah en effet :P

Je pqrs du principe qu'en deux secondes il sera difficile d'ecrire toutes les lettres dans une phrase difference, mais il est vrai qu'en ecrivant tres vite :
Je crois en Saint Tlem
, on provoquera la colère de mon programme :P