Page 1 sur 1

[..] Label + <a></a>: Gros challenge ou limite de autoit ?

Posté : jeu. 28 févr. 2013 21:12
par zazapeta
Bonjour,
Je vous propose un challenge : Creer une fonction _GuiCtrlCreateHyperLabel qui fait ça :

Code : Tout sélectionner

$str = "Ceci est un exemple. Vous pourrez retrouver cette exemple sur <a href='www.autoit.fr'> Autoit </a> et sur <a href='www.google.fr'> google </a> ou bien encore sur <a href='www.AUTOITCGENIAL.com'> AutoiCGenial </a>."
$myLabel = _GuiCtrlCreateHyperLabel($hGui,$str,150,150,300,100)
 
Cette fonction permettra de creer un texte avec un lien un l’intérieure. Pour les habituer du HTML ça ne devrait pas poser de problème.
Pour les autres, la balise "<a href='monlien'> bla bla </a>" permet de transformer le texte "bla bla" en un lien hypertexte qui pointe sur 'monlien'. C'est du html.

J'ai cherché, cherché, cherché et encore cherché... no way ! Je pense que ce n'est pas possible de faire ça en autoit.

Détrompez moi !!!

Cordialement.
Et merci d'avance à toutes et à tous qui prendront le temps de me lire.
Zazapeta.

Re: [..] Label + <a></a>: Gros challenge ou limite de autoit

Posté : jeu. 28 févr. 2013 21:17
par jguinch

Re: [..] Label + <a></a>: Gros challenge ou limite de autoit

Posté : jeu. 28 févr. 2013 21:23
par zazapeta
Sérieux ??? :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock: :shock:
C'est exactement ça !!!!!!!!
En tout cas merci !
(je suis mauvais moi... :cry: )

Mais merci, merci, merci,merci mille fois !!!!!!!
EDIT :
Je clos le sujet.
Je réouvre le sujet ... car la solution proposer plus haut est trop *complex* :mrgreen:

Re: [R] Label + <a></a>: Gros challenge ou limite de autoit

Posté : ven. 01 mars 2013 08:21
par jguinch
J'ai cherché, cherché, cherché et encore cherché
Mouais....

Re: [R] Label + <a></a>: Gros challenge ou limite de autoit

Posté : ven. 01 mars 2013 10:20
par mikell
+1 :mrgreen:

Surtout que ça peut se faire sans un code monstrueux
Même en respectant *à la lettre* le cahier des charges approximatif du post n°1 (ce qui n'est pas forcément souhaitable d'ailleurs) ça reste facile
► Afficher le texte

Re: [R] Label + <a></a>: Gros challenge ou limite de autoit

Posté : ven. 01 mars 2013 11:08
par jguinch
Mickell, avec ton code, où est passé le reste du texte "Ceci est un exemple. Vous pourrez retrouver cette exemple sur" ? :P

Re: [R] Label + <a></a>: Gros challenge ou limite de autoit

Posté : ven. 01 mars 2013 11:54
par mikell
Bah
► Afficher le texte
C'est brouillon, c'est sommaire mais c'est juste pour l'idée ^^
Après tout l'usage des liens dans les gui c'est à 99% dans les boîtes "About", et se taper 800 Ko d'includes juste pour une boîte "About", personnellement c'est non :mrgreen:

Re: [..] Label + <a></a>: Gros challenge ou limite de autoit

Posté : ven. 01 mars 2013 12:01
par zazapeta
En tout cas merci pour vos réponse.

@jguinchard
C'est donc possible. Toutefois, http://www.autoitscript.com/forum/topic ... slink-udf/ est un peu compliqué à mettre en place. Enfin compliqué, j'entend par là que j'ai pas mal de chose à faire en plus que de taper mon texte :P . Mais à regarder de plus près pour voir si y a pas un petit quelque chose à faire là pour automatiser tout c'est dummy et compagnie.

@Mickell
On en est arrivé au même point. :wink: J'ai à peu près implémenter la même chose. Sauf que je ne vois pas trop comment récupérer le texte original et y inclure mon lien.

Hier soir j'ai peut-être fermé le sujet un peu vite. Je le réouvre, car pour le moment :?: ....

Cordialement,
Zazapeta.
P.S.: J'ai modifié le cahier des charges. La fonction doit pouvoir gerer plusieurs liens à la fois. dans le texte.

Re: [R] Label + <a></a>: Gros challenge ou limite de autoit

Posté : ven. 01 mars 2013 17:17
par mikell
Quelque chose comme ça ?
► Afficher le texte

Re: [..] Label + <a></a>: Gros challenge ou limite de autoit

Posté : lun. 07 oct. 2013 15:14
par zazapeta
Bonjour,

Je relance le sujet.
Pour palier à ce problème je suis passer à l'html (avec htmllayout.dll).

Est-ce trop compliqué ? En tout cas pour moi, oui.

Cordialement,

zazapeta

PS : J'ai essaye d'utiliser, de simplifier, d'integrer GUISyslink (posté plus haut). C'est pas facile. Si quelqu'un peut m'expliquer, je dis pas non.

Re: [..] Label + <a></a>: Gros challenge ou limite de autoit

Posté : mer. 09 oct. 2013 14:31
par mikell
Si tu veux la simplicité tu as aussi l'option de tout faire en html avec un controle objet
► Afficher le texte

Re: [..] Label + <a></a>: Gros challenge ou limite de autoit

Posté : ven. 22 nov. 2013 15:08
par zazapeta
Merci mikell pour ta participation.
C'est ce que j'ai fait finalement. Un objet activeX pour y integrer mon texte et mes liens.
Poussons le bouchons. Est-il possible de communiquer entre l'html et autoit. Autrement dit, creer un bouton en html et y associer une action autoit. Cela reviens en effet à remplacer le Javascript par de l'autoit (sans passer par htmllayout bien entendu ^^). Un peu comme vbScript. Cela serait génial !

Question HORS SUJET :
Je pense de plus en plus à me tourner vers le javascript + .hta pour creer mon application. Est-il possible d'effectuer les même actions en JS qu'en VBS (et en autoit) (écriture registre, fichier, shellExecute, ect ...) ? Bien sur la perfection ça serait de pouvoir utiliser autoit (j'aime bien ce language ^^').

Cordialement,
zazapeta.

Re: [..] Label + <a></a>: Gros challenge ou limite de autoit

Posté : ven. 22 nov. 2013 16:17
par timmalos
On peut faire ca assez facilement. Dans cet exemple j'ai rajouté les evenements DWebBrowserEvents2, cf MSDN, mais vous pouvez les enlever.

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <IE.au3>

$oIE = ObjCreate("Shell.Explorer.2")
$EventObject=ObjEvent($oIE,"IEEvent_","DWebBrowserEvents2")
if @error then
   Msgbox(0,"AutoIt COM Test", _
    "ObjEvent: Can't use event interface 'DWebBrowserEvents'. Error code: " & hex(@error,8))
   exit
endif


$hGUI = GUICreate ("Test zazapeta", 800, 600) ;, 10, 50)
GUICtrlCreateObj($oIE, -2, -2, 800, 600)
_IENavigate($oIE, "about&#058;blank")
$oBody = _IETagnameGetCollection($oIE, "body", 0)
_IEDocInsertHTML($oBody, "<a href=http://www.autoitscript.fr>Navigate to http://www.autoitscript.fr</a><p>")
_IEDocInsertHTML($oBody, "<BUTTON id=b1 value='Normal Exit'>Normal Exit</button>&nbsp;")
_IEDocInsertHTML($oBody, "<BUTTON id=b2 value='Safe Exit'> Safe Exit </button>")

$oButton1 = _IEGetObjById($oIE, "b1")
$oButton2 = _IEGetObjById($oIE, "b2")
$oEvtButton1 = ObjEvent($oButton1, "evtButton_")
$oEvtButton2 = ObjEvent($oButton2, "evtButton_")

GUISetState()




While GUIGetMsg() <> $GUI_EVENT_CLOSE
  Sleep(10)
WEnd



$EventObject.Stop  ; Tell IE we don't want to receive events.
$EventObject=0   ; Kill the Event Object
exit


Func evtButton_onclick()
    Local $o_object = @COM_EventObj
    Switch $o_object.value
        Case "Normal Exit"
            Msgbox(0,"","Tu as cliqué sur le bouton Normal Exit")
        Case "Safe Exit"
            Msgbox(0,"","Tu as cliqué sur le bouton Safe Exit")
    EndSwitch
EndFunc

Func IEEvent_BeforeNavigate2($URL, $Flags, $TargetFrameName, $PostData, $Headers, $Cancel)
;   Note: the declaration is different from the one on MSDN.
    ConsoleWrite( "BeforeNavigate: " & $URL & " Flags: " & $Flags & " tgframe: " & $TargetFrameName & " Postdat: " & $PostData & " Hdrs: " & $Headers & " canc: " & $Cancel  & @CRLF )
EndFunc


Func IEEvent_StatusTextChange($Text)
    ConsoleWrite( "IE Status text changed to: " & $Text & @CRLF )
EndFunc

Func IEEvent_PropertyChange( $szProperty)
    ConsoleWrite( "IE Changed the value of the property: " & $szProperty & @CRLF )
EndFunc

Func IEEvent_DownloadComplete()
    ConsoleWrite( "IE has finished a navigation operation" & @CRLF )
    $oDoc=  _IEDocGetObj($oIE)
    ConsoleWrite( "-->Document cookie : "& $oDoc.cookie & @CRLF )
    ConsoleWrite( "-->Document title : "& $oDoc.title& @CRLF )
    ConsoleWrite( "-->Document referrer : "& $oDoc.referrer& @CRLF )
    ConsoleWrite( "-->Document url : "& $oDoc.url& @CRLF )


EndFunc

Func IEEvent_NavigateComplete($URL)
;   Note: the declaration is different from the one on MSDN.
    ConsoleWrite( "IE has finished loading URL: " & $URL & @CRLF )
EndFunc

Func IEEvent_($EventName)
; This is an optional event function to catch non-defined events.
; The parameter contains the name of the event being called.
    ConsoleWrite( "Uncatched event: " & $EventName & @CRLF )
EndFunc