Bonjour a tous,
j'ai créé un au3 et compiler celui-ci afin de créer un pop up pour l'infirmière de mon travail avec un texte dedans mais elle souhaiterait modifier ce texte elle même quand elle en a besoin...
est ce possible d'insérer dans cet au3 le contenu d'un fichier word ? en gros, modifier le texte du GUICtrlCreateLabel
voila le code source de mon au3 :
#include <Constants.au3>
#include <windowsConstants.au3>
#include <GuiConstants.au3>
#include <file.au3>
#include <Date.au3>
#include <GUIConstantsEx.au3>
; police de caractères utilisée
$sFont = "Comic Sans MS"
; emplacement du pop up
$FenPosSizeX = @DesktopWidth - 300
$FenPosSizeY = @DesktopHeight - 200
; pop up 280X128
GUICreate("pensez-y", 280, 128,$FenPosSizeX,$FenPosSizeY)
; insertion d'image
GUICtrlCreatePic("\\w1\info\popup_santé_au_travail\stetho.jpg", 0, 0, 128, 128)
; texte qui commence à 130 sur la doite et 40 vers le bas
GUICtrlCreateLabel ("Pensez à bouger !" , 130, 40, 1000, 1000)
; police en taille 12, non gras, sans attributs, en comic sans ms
GUICtrlSetFont(-1, 12, 0, 0, $sFont)
; couleur du texte en BLEU
GUICtrlSetColor(-1, 0x1a3ba6)
; couleur de font
GUISetBkColor($COLOR_WHITE)
GUISetState(@SW_SHOW)
; pop up s'affiche pendant 10 secondes
Sleep(10000)
Merci d'avance pour vos réponses
modifier texte autoit via word
Re: modifier texte autoit via word
Bonsoir soadjl,
Bienvenue sur notre forum et content de te voir le rejoindre.
Désolé pour ce délai de réponse, je suis parti en voyage quelques jours et pas de connexion avec moi.
Pour le code que tu donnes, il permet juste d'afficher le contenu d'un label.
Il ne manquerais pas l'include ColorConstants.au3 ?
Celle-ci :
Indique bien que tu as un code bien plus complet.
Que veux-tu faire ? Extraire le contenu d'un Word en l'affichant dans un label ?
Étonnant, il ne serait pas plus simple d'avoir une zone d’édition.
Extraire le contenu du word et de l'afficher dans celle-ci et ainsi pouvoir la modifier.
Extraire du texte du fichier. doc
https://www.autoitscript.com/forum/topi ... -doc-file/
Maintenant tu peux très bien afficher le word dans le label mais cela ne sera pas si simple à exploiter.
Un label modifiable depuis l'utilisateur... Pas à ma connaissance.
Peux-tu préciser ta demande stp ?

Bienvenue sur notre forum et content de te voir le rejoindre.
Désolé pour ce délai de réponse, je suis parti en voyage quelques jours et pas de connexion avec moi.
Pour le code que tu donnes, il permet juste d'afficher le contenu d'un label.
Il ne manquerais pas l'include ColorConstants.au3 ?
Celle-ci :
Code : Tout sélectionner
#include <Constants.au3>
#include <windowsConstants.au3>
#include <GuiConstants.au3>
#include <file.au3>
#include <Date.au3>
#include <GUIConstantsEx.au3>
Indique bien que tu as un code bien plus complet.
Que veux-tu faire ? Extraire le contenu d'un Word en l'affichant dans un label ?
Étonnant, il ne serait pas plus simple d'avoir une zone d’édition.
Extraire le contenu du word et de l'afficher dans celle-ci et ainsi pouvoir la modifier.
Extraire du texte du fichier. doc
https://www.autoitscript.com/forum/topi ... -doc-file/
Maintenant tu peux très bien afficher le word dans le label mais cela ne sera pas si simple à exploiter.
Un label modifiable depuis l'utilisateur... Pas à ma connaissance.
Peux-tu préciser ta demande stp ?

Re: modifier texte autoit via word
Bonsoir
En utilisant la fonction proposé sur le site US, voici un exemple.
Est-ce une piste ?
Bonne soirée.

En utilisant la fonction proposé sur le site US, voici un exemple.
Est-ce une piste ?

Code : Tout sélectionner
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compile_Both=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <ColorConstants.au3>
Dim $file = FileOpenDialog("Choose .doc file", @DesktopDir, "Word doc file (*.doc)", 1)
If @error Then Exit
Dim $TxT = DOCtoTXT($file)
; police de caractères utilisée
$sFont = "Comic Sans MS"
; emplacement du pop up
$FenPosSizeX = @DesktopWidth - 300
$FenPosSizeY = @DesktopHeight - 200
; pop up 280X128
GUICreate("pensez-y", 280, 128,$FenPosSizeX,$FenPosSizeY)
; insertion d'image
GUICtrlCreatePic("\\w1\info\popup_santé_au_travail\stetho.jpg", 0, 0, 128, 128)
; texte qui commence à 130 sur la doite et 40 vers le bas
GUICtrlCreateLabel ($TxT , 130, 40, 1000, 1000)
; police en taille 12, non gras, sans attributs, en comic sans ms
GUICtrlSetFont(-1, 12, 0, 0, $sFont)
; couleur du texte en BLEU
GUICtrlSetColor(-1, 0x1a3ba6)
; couleur de font
GUISetBkColor($COLOR_WHITE)
GUISetState(@SW_SHOW)
; pop up s'affiche pendant 10 secondes
Sleep(10000)
Func DOCtoTXT($docfile)
Local $extension = StringSplit($docfile, ".", 1)
$extension = $extension[$extension[0]]
Local $hwnd = FileOpen($docfile, 16)
Local $content = FileRead($hwnd)
FileClose($hwnd)
Local $contentdoc = BinaryMid($content, 513, 2) ; 0xECA5 - for .doc file of our interest
Select
Case $extension <> "doc" And $contentdoc <> "0xECA5"
Return SetError(1) ; not doc file or quasi doc file with wrong extension
Case $extension <> "doc" And $contentdoc = "0xECA5"
Return SetError(2) ; extension incorrect, header indicates doc file
Case $extension = "doc" And $contentdoc <> "0xECA5"
Return SetError(3) ; extension incorrect or quasi doc file (extracting code required)
EndSelect
Local $complex_bin = BinaryMid($content, 523, 2) ; little endian
Local $complex
For $a = 1 To 2
; little endian -> big endian
$complex &= Hex(BinaryMid($complex_bin, 3 - $a, 1))
Next
$complex = Dec($complex)
If Mod(Floor($complex / 4), 2) <> 0 Then Return SetError(4) ; complex doc file (extracting code required)
Local $start_bin = BinaryMid($content, 537, 4) ; little endian
Local $start
For $i = 1 To 4
; little endian -> big endian
$start &= Hex(BinaryMid($start_bin, 5 - $i, 1))
Next
$start = Dec($start) ; text starts here
Local $end_bin = BinaryMid($content, 541, 4) ; little endian
Local $end
For $i = 1 To 4
; little endian -> big endian
$end &= Hex(BinaryMid($end_bin, 5 - $i, 1))
Next
$end = Dec($end) ; text ends here
If $start > $end Then Return SetError(5) ; corrupted header
Local $content1 = BinaryMid($content, 513 + $start, $end - $start)
Local $text
$text = StringReplace(BinaryToString($content1), Chr(0), "")
$text = StringRegExpReplace($text, "(?s)(\x13.+?)\x14(.*?)\x15?", "$1" & Chr(21) & "$2")
$text = StringRegExpReplace($text, '(?s)\x13(.*?)\x15', "")
$text = StringRegExpReplace($text, "[^[:space:]|[:print:]]", "")
$text = StringRegExpReplace($text, "\v", @CRLF)
Return $text
EndFunc