Page 1 sur 1

[R] Affichage du caractère "&" dans un label

Posté : jeu. 20 mai 2010 12:02
par DavidMon
Bonjour à tous,

Débutant depuis 3 mois sur AutoIT, je bloque sur l'exploitation d'un lien url contenant le carctère "&".

Code : Tout sélectionner

#include <GUIConstants.au3>

Opt("GUIOnEventMode",1)

$Font ="MS Sans Serif"
; url exemple = http://www.google.fr/search?hl=fr&q=autoIT+&meta="
$url = "http://www.google.fr/search?hl=fr" &chr(38)& "q=autoIT+" &chr(38)& "meta="
MsgBox(0,"debug ","url exemple = "&$url)

$Gui = GUICreate("", 524, 104, 300, 115)
GUISetOnEvent ($GUI_EVENT_CLOSE, "quitte" )
$Lbl1 = GUICtrlCreateLabel("Exemple d'autoitfr :", 16, 8, 489, 17)
$Lbl2 = GUICtrlCreateLabel($url, 24, 32, 481, 17)  ; le caractère "&" n'est plus pris en compte
GUICtrlSetFont(-1, 8, 400, 4, $Font)
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetCursor(-1, 4)
GUICtrlSetOnEvent(-1, "start")
$Btn1 = GUICtrlCreateButton("quitter", 40, 56, 75, 25, 0)
GUICtrlSetOnEvent(-1, "quitte")
GUISetState(@SW_SHOW)

While 1
sleep(100)
WEnd

Func start()
Run(@ComSpec & " /c start file:" & $url, "", @SW_HIDE)
EndFunc

Func quitte()
Exit
EndFunc
Merci

Re: [..] Affichage du caractère "&" dans un label

Posté : jeu. 20 mai 2010 13:37
par scorp84
Bonjour DavidMon,

En doublant le caractère &, ça fonctionne :

Code : Tout sélectionner

$url = "http://www.google.fr/search?hl=fr&&q=autoIT+&&meta="
Amicalement.

BM

Re: [..] Affichage du caractère "&" dans un label

Posté : jeu. 20 mai 2010 14:34
par DavidMon
Merci pour cette réponse.
Cependant la finalité du module n'est pas atteinte car le lien URL ne fonctionne en doublant le "&".

Dois-je, dans ce cas, modifier le titre de mon sujet ou bien en créer un nouveau ?

Re: [..] Affichage du caractère "&" dans un label

Posté : jeu. 20 mai 2010 15:01
par scorp84
Il y a le texte affiché qui doit être traité pour doubler les & pour que le label puisse afficher correctement ton url et ton url proprement dite qui te servira à lancer le navigateur pour afficher la bonne adresse.

Si c'est bien le cas, j'utiliserai la fonction StringReplace pour doubler les & à l'affichage du label sans toucher à la variable pour lancer l'url.

Voici ce que ça donnerait :

Code : Tout sélectionner

#include <GUIConstants.au3>

Opt("GUIOnEventMode",1)

$Font ="MS Sans Serif"
$url = "http://www.google.fr/search?hl=fr&q=autoIT+&meta="
MsgBox(0,"debug ","url exemple = "&$url)

$Gui = GUICreate("", 524, 104, 300, 115)
GUISetOnEvent ($GUI_EVENT_CLOSE, "quitte" )
$Lbl1 = GUICtrlCreateLabel("Exemple d'autoitfr :", 16, 8, 489, 17)
$Lbl2 = GUICtrlCreateLabel(StringReplace($url,"&","&&"), 24, 32, 481, 17)  
GUICtrlSetFont(-1, 8, 400, 4, $Font)
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetCursor(-1, 4)
GUICtrlSetOnEvent(-1, "start")
$Btn1 = GUICtrlCreateButton("quitter", 40, 56, 75, 25, 0)
GUICtrlSetOnEvent(-1, "quitte")
GUISetState(@SW_SHOW)

While 1
sleep(100)
WEnd

start()
Func start()
ShellExecute($url)
EndFunc

Func quitte()
    Exit
EndFunc
j'ai aussi remplacé

Code : Tout sélectionner

Run(@ComSpec & " /c start file:" & $url, "", @SW_HIDE)
par

Code : Tout sélectionner

ShellExecute($url)
Dans plusieurs posts c'est cette méthode qui était conseillée.

Amicalement.

BM

Re: [..] Affichage du caractère "&" dans un label

Posté : jeu. 20 mai 2010 15:34
par DavidMon
Merci scorp84 ! :D

Tout est OK pour moi, cordialement, DaviD.

Re: [..] Affichage du caractère "&" dans un label

Posté : jeu. 20 mai 2010 16:13
par scorp84
Tant mieux si ça te va :-)

Par contre le [R] est à mettre sur ton premier message car c'est lui qui est affiché en 1er dans le fil des posts.

Amicalement.

BM