Variable de surbrillance bleu

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
EkinOx
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mar. 06 nov. 2018 15:28
Status : Hors ligne

Variable de surbrillance bleu

#1

Message par EkinOx » ven. 01 mars 2019 11:06

Bonjour à tous,

J'ai fais pas mal de recherches sur le sujet mais impossible de trouver un solution...
Existe-il un moyen de savoir en temps réel si un mot ou un texte entier est sélectionné (surbrillance bleue).
Mais surtout de créer une variable (dont la valeur changera à chaque nouvelle sélection) contenant les caractères sélectionnés.

Je ne parle pas d'un input ou d'un control dans une GUI mais bien de n'importe quel mot/texte sélectionné sur n'importe quelle page !

Exemple :
exemple.png
$variabledemesreves = Rubri

Merci d'avance si quelqu'un a une idée.

Avatar du membre
mdanielm
Membre émérite
Membre émérite
Messages : 220
Enregistré le : mer. 11 déc. 2013 19:48
Status : Hors ligne

Re: Variable de surbrillance bleu

#2

Message par mdanielm » ven. 01 mars 2019 17:40

Bonsoir,
Peut-être:
-Envoyer Ctrl-C à la fenêtre
-Récupérer le presse-papier dans une variable
Trop simple?

Avatar du membre
orax
Modérateur
Modérateur
Messages : 1472
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Contact :
Status : Hors ligne

Re: Variable de surbrillance bleu

#3

Message par orax » sam. 02 mars 2019 00:09

Si c'est dans une fenêtre d'Internet Explorer, on peut faire comme dans l'exemple suivant.

Code : Tout sélectionner

#include <IE.au3>
$oIE = _IE_Example()
Sleep(5000) ; pause de 5 secondes pour sélectionner du texte dans la page
$sel = $oIE.document.getSelection().toString() ; récupère la sélection
ConsoleWrite($sel & @CRLF)
_IEQuit($oIE)
https://developer.mozilla.org/fr/docs/W ... tSelection
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)

Avatar du membre
mikell
Modérateur
Modérateur
Messages : 5812
Enregistré le : dim. 29 mai 2011 16:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Variable de surbrillance bleu

#4

Message par mikell » sam. 02 mars 2019 21:37

Franchement, AMHA la solution de mdanielm est nickel. Simple, efficace, polyvalente
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )

EkinOx
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mar. 06 nov. 2018 15:28
Status : Hors ligne

Re: Variable de surbrillance bleu

#5

Message par EkinOx » lun. 04 mars 2019 12:01

Merci pour vos réponses et vos conseils.
Effectivement j'ai pensé à cette technique et c'est même celle que j'ai mis en place !

Voici mon script pour mieux comprendre :
► Afficher le texte
Maintenant c'est pas forcement le plus pratique et le plus rapide...
La méthode sur IE fonctionne certainement mais j'ai besoin que ça fonctionne partout...
Après j'ai pensé utiliser "PixelSearch" car le bleu de la surbrillance est particulier mais ça promet un script hard et incertain ^^".

Avatar du membre
walkson
Modérateur
Modérateur
Messages : 639
Enregistré le : ven. 12 août 2011 18:49
Localisation : Essonne
Status : Hors ligne

Re: Variable de surbrillance bleu

#6

Message par walkson » lun. 04 mars 2019 22:17

Bonjour,
Il est vraiment bizarre votre code :shock:
HotKeySet( "{F2}", Actionprogramme) et Global $TexteOk n'ont pas besoin d'être dans une boucle mais être en début de code
$TexteOk = StringUpper(ClipGet()) c'est bien pour récupérer le clipboard mais avant il faut le remplir
Send("{DEL}") autrement dit, supprimer tout ce qui sera sélectionné. Vous allez faire de la place sur votre PC :P
Send($TexteOk) c'est envoyé des mots sans destinataire :mrgreen:

Comme le suggérait Daniel, il faut faire un copier (ctrl+c) Send("^c") après on utilise ClipGet()
Pour vider le clipboard (je pense que c'était ce que vous souhaitiez avec DEL) ClipPut("")
à titre d'exemple
#include <WindowsConstants.au3>
#include <Misc.au3>

While 1

If _IsPressed(01) Then ;clic gauche pressé
        Sleep(500)
Send("^c")
ToolTip(ClipGet() , 50,100)
;ou GUICtrlSetData($Input, ClipGet())
Else
        ClipPut("")
        Sleep(250)
EndIf

WEnd
Quant à utiliser PixelSearch avec le million de pixels et quelques de votre écran et que vous avez trouvé votre couleur, reste à déterminer le texte si c'est du texte :P
Quand le gros chat vert écrit
Franchement, AMHA la solution de mdanielm est nickel. Simple, efficace, polyvalente
y'a pas photo :lol:
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi

EkinOx
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mar. 06 nov. 2018 15:28
Status : Hors ligne

Re: Variable de surbrillance bleu

#7

Message par EkinOx » mar. 05 mars 2019 15:20

Oui je suis dans me début en Autoit, je comprends que mes codes puissent être bizarre des fois ! :lol:
Effectivement c'est une erreur d'avoir placé les deux lignes dans la boucle, c'est modifié merci.

Jusqu'à présent pour utiliser une des "options" je devais au préalable sélectionner le texte à modifier, le copier et faire F2 (dans ce cas le $TexteOk et le ClipGet() sont en fait la sélection).
Mais effectivement, ajouter un Send("^c") après avoir cliqué sur F2 c'est plus logique !

En fait le Send("{DEL}") c'est pour supprimer le texte sélectionné et Send($TexteOk) renvoie le texte mais modifié (en majuscule, minuscule...).

En fait je pense qu'il faut le tester pour comprendre car j'ai vraiment des idées étranges parfois ! ^^

Merci pour votre implication en tout cas, vous êtes vraiment au top sur ce forum !
Maintenant je crois qu'il n'existe pas de solution cette fois mais avec vos idées je peux au moins finir le programme, et j'en ai d'autres ;)

EkinOx
Niveau 1
Niveau 1
Messages : 6
Enregistré le : mar. 06 nov. 2018 15:28
Status : Hors ligne

Re: Variable de surbrillance bleu

#8

Message par EkinOx » mar. 05 mars 2019 15:44

La correction qui fonctionne parfaitement (juste un petit coup de Koda et c'est OK ^^) :
► Afficher le texte

Avatar du membre
walkson
Modérateur
Modérateur
Messages : 639
Enregistré le : ven. 12 août 2011 18:49
Localisation : Essonne
Status : Hors ligne

Re: Variable de surbrillance bleu

#9

Message par walkson » mar. 05 mars 2019 18:37

Dans ce cas je vous conseille ceci pour éviter de mauvaises surprises !
Func Actionprogramme() ; les actions du programme en fonction du combo choisit

Local $shandle = WinGetHandle("[ACTIVE]"); handle to the window.
Local $sControl = ControlGetFocus("[ACTIVE]");the ClassNameNN of the control
Send("^c")
Local $TexteBrut = ClipGet()
If $TexteBrut = "" Then Return SetError(1) ;pour éviter les erreurs de manipulation
ClipPut("")

If GUICtrlRead($Listederoulante) = "Texte en majuscule" Then
        $TexteOk = StringUpper($TexteBrut)
                ControlSend($shandle, "", $sControl,$TexteOk)
               
ElseIf GUICtrlRead($Listederoulante) = "Texte en minuscule" Then
        $TexteOk = StringLower($TexteBrut)
        ControlSend($shandle, "", $sControl,$TexteOk)

ElseIf GUICtrlRead($Listederoulante) = "Retourner le texte" Then
        $TexteOk = StringReverse("crotte")
        ControlSend($shandle, "", $sControl,$TexteOk)
;.................... etc
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi

Répondre