[R] Input comme la barre de recherche dans firefox

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
karime1
Niveau 5
Niveau 5
Messages : 106
Enregistré le : sam. 09 avr. 2011 10:05
Status : Hors ligne

[R] Input comme la barre de recherche dans firefox

#1

Message par karime1 »

bonjours
j'ai fait une fenêtre avec Autoit, qui ressemble a un formulaire avec quelque input. rien de difficile jusqu'au la. après j'ai eu l'idée de remplacer les label qui guide l'utilisateur, par un texte écrit a l'intérieur de l'input. sauf que l'utilisateur doit les vider a chaque fois. alors j'ai cherché a faire un truc comme la barre de recherche google ou celle de linternaute.com qui est ecrite malheureusement en html
<input ... value="Rechercher" onfocus="if(this.value=='Rechercher') this.value='';" onblur="if(this.value=='') this.value='Rechercher';">

qui devient a peu près:

if "onfocus" AND guictrlread($h)='Rechercher' then
guictrlsetdata($h,'')
Elseif "onblur" AND guictrlread($h)='' then
guictrlsetdata($h,'Rechercher')
Endif

le prob c'est que y'a pas de fonction comme "onfocus" ou "onblur" pour les input, j'ai même essayé GUICtrlGetState mais ça marche pas :cry:
Quelq'un peu me sauver?svp
Modifié en dernier par karime1 le sam. 09 juil. 2011 10:25, modifié 1 fois.
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Input comme la barre de recherche dans firefox

#2

Message par TT22 »

Tien, essaye avec ça :

Code : Tout sélectionner

#include<GuiConstantsEx.au3>
#include <EditConstants.au3>

GUICreate("Form")
GUICtrlCreateInput("Rechercher",5,5,100,50,$ES_MULTILINE)
GUISetState()

While 1
    $msg = guigetmsg()
    If $msg = $GUI_EVENT_CLOSE Then
        Exit
        EndIf
    WEnd
Cordialement,
TT22
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Input comme la barre de recherche dans firefox

#3

Message par mikell »

Voilà exactement ce que tu veux
► Afficher le texte
Méthode bourrin mais ça marche :mrgreen:
C'est l'idée mais il vaudrait peut-être mieux mettre le bazar dans un GUISetOnEvent plutôt que dans un While
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Input comme la barre de recherche dans firefox

#4

Message par Tlem »

Un sujet similaire a été présenté.

Une callback sur l'input avec un GuiRegister, puis une fonction de traitement.

Si mes souvenirs sont exacts, il s'agissait d'un système avec dictionnaire.
Là, il m'est difficile de faire des recherches mais je ne doute pas que vous allez y arriver.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
karime1
Niveau 5
Niveau 5
Messages : 106
Enregistré le : sam. 09 avr. 2011 10:05
Status : Hors ligne

Re: [..] Input comme la barre de recherche dans firefox

#5

Message par karime1 »

@ Tlem: j'ai pas trouvé le vieu sujet
@mikell: une fois le texte supprimé il ne revient plus et ça marche seulement avec le bouton gauche de la souris, il se peut qu'on utilise le bouton droit ou le bouton TAB ou guictrlGetFocus et donc on pe plus utiliser GUIGetCursorInfo
si quelqu'un a une autre idée svp
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Input comme la barre de recherche dans firefox

#6

Message par Tlem »

De mon PC, la recherche était plus simple (30 secondes) :
http://www.autoitscript.fr/forum/viewto ... f=6&t=3232

La partie intéressante ce trouve dans les derniers messages.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
karime1
Niveau 5
Niveau 5
Messages : 106
Enregistré le : sam. 09 avr. 2011 10:05
Status : Hors ligne

Re: [..] Input comme la barre de recherche dans firefox

#7

Message par karime1 »

c'est pas ça :D
c'est comme ce qu'a fait mikell ce que je cherche.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Input comme la barre de recherche dans firefox

#8

Message par mikell »

karime1 a écrit :@mikell: une fois le texte supprimé il ne revient plus et ça marche seulement avec le bouton gauche de la souris, il se peut qu'on utilise le bouton droit ou le bouton TAB ou guictrlGetFocus
Alors
- je te signale que dans la barre de recherche de google (comme celle qui est dans firefox par exemple) le texte il revient pas non plus :mrgreen:
- pour les boutons tu as absolument le droit d'adapter le script selon tes envies (voir les différentes possibilités pour _IsPressed dans l'aide)
Mon exemple n'était qu'une trame, à toi d'en faire exactement ce que tu veux :wink:
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Input comme la barre de recherche dans firefox

#9

Message par Tlem »

karime1 a écrit :c'est pas ça :D
c'est comme ce qu'a fait mikell ce que je cherche.
:shock:

C'est pas un truc comme ceci que vous cherchez à faire ?
► Afficher le texte
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Input comme la barre de recherche dans firefox

#10

Message par mikell »

:shock:
Tlem pourriez-vous expliquer en détail la signification des lignes dans cette fonction MY_WM_COMMAND ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Input comme la barre de recherche dans firefox

#11

Message par Tlem »

Code édité pour rajouter les commentaires.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Input comme la barre de recherche dans firefox

#12

Message par mikell »

:mrgreen: merci...

Code : Tout sélectionner

    $nNotifyCode = BitShift($wParam, 16) ; [color=#FF0000]Converti $wParam avant utilisation[/color]
    $nID = BitAND($wParam, 0x0000FFFF) ; [color=#FF0000]Converti $wParam avant utilisation[/color]
Heu oui, mais encore ?!?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Input comme la barre de recherche dans firefox

#13

Message par Tlem »

Ha, on ne sait pas lire :
; Pour plus de détails sur les paramètres, lire la section Remarks de la fonction GUIRegisterMsg.
Allez, c'est bien parce que c'est vous :
When the user function is called then these 4 parameters have the following values:
Position Parameter Meaning
hWnd - The Window handle of the GUI in which the message appears.
Msg - The Windows message ID.
wParam - The first message parameter as hex value.
lParam - The second message parameter as hex value.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Input comme la barre de recherche dans firefox

#14

Message par mikell »

Ha, ha, ha. Funny le boss, sauf qu'il répond à côté

Code : Tout sélectionner

    $nNotifyCode = BitShift($wParam, 16) ; [color=#FF0000]Converti $wParam avant utilisation[/color]
    $nID = BitAND($wParam, 0x0000FFFF) ; [color=#FF0000]Converti $wParam avant utilisation[/color]
alors je m'obstine : que signifient précisément (traduction en français please) BitShift($wParam, 16) et BitAND($wParam, 0x0000FFFF )?
Sachant que le fichier d'aide qui est mon livre de chevet me susurre "BitShift : Performs a bit shifting operation" , "BitAND : Performs a bitwise AND operation", ce qui vous en conviendrez est d'une clarté aveuglante :roll:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Input comme la barre de recherche dans firefox

#15

Message par Tlem »

Cela me semblait inutile de donner plus de détails, car là on entre dans la partie cachée de l'iceberg, mais si vous y tenez :

Alors, on commence par GUIRegisterMsg qui est une fonction qui permet d'utiliser une callback sur les messages Windows.
En l’occurrence, le message Windows utilisé est : WM_COMMAND
Mais vous pouvez déterminer celui que vous voulez en consultant cette liste : Codes des Messages Windows

Ensuite, afin de connaitre les valeurs de retour de la commande utilisée, allez chez notre ami Bill et utilisez le moteur de recherche intégré : http://msdn.microsoft.com

Ce qui nous donne pour WM_COMMAND : http://msdn.microsoft.com/en-us/library ... 85%29.aspx

Dans la section Remarks, vous avez un tableau avec les valeurs de retour possible. En consultant l'élément utilisé dans notre cas (un contrôle input), on peut lire sur la ligne Control :
► Afficher le texte
Pour notre cas, nous retiendrons que :
wParam (high word) = Control-defined notification code
wParam (low word) = Control identifier

Comme ces deux paramètres (Control-defined notification code et Control identifier) sont dans la valeur de retour de wParam, il va falloir les séparer !!!

BitShift($wParam, 16) permet donc de récupérer le low word de wParam (l'ID du contrôle), alors que BitAND($wParam, 0x0000FFFF) permet de récupérer le high word de wParam et donc le code de notification Windows.

* Juste au cas ou vous chercheriez encore la petite bête en ce qui concerne wParam, low word et high word, je rajouterais :
lParam est de type DWORD (double word) qui est un entier non signé de 32 bits.
La ligne : BitShift($wParam, 16) extrait le WORD inférieur
La ligne : BitAND($wParam, 0x0000FFFF) extrait le WORD supérieur
WORD - Un word est simplement 2 bytes ensemble, soit 16 bits. Un Word
peut avoir une valeur maximale de 0FFFFh (soit 65535d, ou h veut dire "en
hexadécimal", et d "en décimal").

DOUBLE WORD - Syntaxe DWORD: Un DWORD consiste en deux WORD
ensemble, soit un maximum de 32 bits. Valeur maximale = 0FFFFFFFFh (ou
encore 4294967295d).
Voilà, j'espère vous avoir bien malaxé les neurones et que cette journée vous soit comme un jour de révélation ... hihihi

.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
karime1
Niveau 5
Niveau 5
Messages : 106
Enregistré le : sam. 09 avr. 2011 10:05
Status : Hors ligne

Re: [..] Input comme la barre de recherche dans firefox

#16

Message par karime1 »

:shock: :shock: :shock:
tros compliqué tout ça, je vais me contenter de copier le script et l'admirer
merci beaucoup
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Input comme la barre de recherche dans firefox

#17

Message par mikell »

Tlem MERCI Image
C'est exactement le genre d'explication claire qui manque parfois cruellement dans le fichier d'aide
Tlem a écrit :Juste au cas ou vous chercheriez encore la petite bête ...
Vous n'aimez pas comprendre ce que vous faites, vous ?
"Utiliser les choses sans les comprendre ne saurait manquer de faire trébucher le blaireau" (Confucius) :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11791
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Input comme la barre de recherche dans firefox

#18

Message par Tlem »

mikell a écrit :Vous n'aimez pas comprendre ce que vous faites, vous ?
Parfois, je prend les codes comme ils viennent, sans en comprendre l'intégralité, mais en sachant m'en servir pour mes besoins.

En l’occurrence, je savait ce qu'était les variables $nNotifyCode et $nID (leur nom était suffisamment évocateur) sans pour autant connaitre le détail de l'extraction du low word et du high word. ;)

Comme je sais trouver les réponses, je l'ai fait afin d'en faire profiter ceux que ça pourrait intéresser ...
Au final, ceci et ceci suffisent largement pour la compréhension d'un point particulier. :P
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [R] Input comme la barre de recherche dans firefox

#19

Message par zeshrek »

[Msg supprimés pour cause de hors sujet et départ en troll.]
Si vis pacem para bellum
Répondre