Page 1 sur 1

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

Posté : ven. 09 oct. 2015 09:32
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.

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

Posté : ven. 09 oct. 2015 10:39
par jchd

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

Posté : ven. 09 oct. 2015 11:13
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

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

Posté : ven. 09 oct. 2015 12:48
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)