[...] Détection d'un texte

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
steve15
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mar. 11 déc. 2012 15:27
Status : Hors ligne

[...] Détection d'un texte

#1

Message par steve15 »

Bonjour,

J'envoie avec un lecteur de code-barres, je lis un code "UNI" puis 6 caractères numériques, par exemple "UNI005283".

J'aimerais que lorsqu'on détecte qu'un code commençant par UNI est scanné (envoyé par le clavier puis qu'elle fonctionne comme un keyboard), ça fasse une action.

Je fais ceci:

While 1
HotKeySet("UNI******", "reactionFunction")
WEnd

Func reactionFunction()
MouseClick("left", 1880, 100)
EndFunc

Ça fonctionne il me fait le clic à mes coordonnées mais par contre il me sucre le "U" du UNI et m'envoie que "NI" avec mon numéro.

Si du coup je fais ceci:

While 1
HotKeySet("UNI******", "reactionFunction")
WEnd

Func reactionFunction()
Send("u")
MouseClick("left", 1880, 100)
EndFunc

Il m'envoie uNI et mes digits. et comme c'est sensible à la casse ça ne fonctionne pas.

Si maintenant j'envoie "U" avec Send("U"), ça dérègle mon lecteur code-barres et c'est comme si mon clavier passait en majuscule ça m'envoie des %$ etc.

Avez-vous une idée ?

Mon but final est ceci: à un moment ou AUTOIT détecte un texte commençant par UNI sur le PC, il attends 5 secondes et envoie un clic au coordonnées. ce n'est pas plus compliqué.

Merci.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [...] Détection d'un texte

#2

Message par jchd »

La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
steve15
Niveau 2
Niveau 2
Messages : 16
Enregistré le : mar. 11 déc. 2012 15:27
Status : Hors ligne

Re: [...] Détection d'un texte

#3

Message par steve15 »

Bonjour,

j'ai fait les include etc ça marche super.

Maintenant si je mets HotStringSet("UNI005283", "reactionFunction") ça fonctionne nickel quand je scanne le UNI005283 mais moi j'aimerais un générique au moment ou il détecte UNI****** ,c'est égal les 6 chiffres d'après que ça fonctionne

Si je mets avec les étoile ça joue pas

MErci
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [...] Détection d'un texte

#4

Message par jchd »

Alors il te faut modifier l'une des fonctions de l'UDF :

Code : Tout sélectionner

Func _HotString_Match($hotkey, $current)
;~  Return StringRight($current, StringLen($hotkey)) = $hotkey
    Return StringRegExp($current, $hotkey)
EndFunc   ;==>_HotString_Match
puis utiliser un argument un poil pplus subtil (une expression régulière). Exemple avec le pavé numérique :

Code : Tout sélectionner

HotStringSet("UNI(\{\d \(PAVE NUM\.\)\}){2}", examplefunction)
Si ton lecteur ne simule pas le pavé numérique, regarde ce qu'il envoie en utilisant le de boguage :

Code : Tout sélectionner

HotStringSetDebug(1)
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Répondre