Page 1 sur 1

[EX] Titre de fenêtre défilant

Posté : lun. 26 juil. 2010 11:19
par SrBelial
Ceci est un exemple d'utilisation de la fonction AdlibRegister.
J'ai essayé de rendre le code le plus lisible possible, c'est pour cette raison qu'il est fortement segmenté.
En espérant que cela éclaire certains d'entre vous sur l'utilisation de cette fonction.

Note : la fonction appelée à intervalles réguliers ne peut recevoir d'arguments. Au lieu de cela vous pouvez utiliser des variables globales, puisque cette fonction partage la même mémoire que la boucle d'exécution principale de votre programme !

Note 2 : l'exemple doit fonctionner normalement avec la fenêtre de votre navigateur internet ouverte à cette page. Si cela ne fonctionne pas, changer le paramètre oldtitle pour le faire correspondre avec une fenêtre ouverte chez vous !

Note 3 : ma hotkey de clôture du script ne fonctionne pas. vous pouvez le fermer depuis le systray.

EDIT : MAJ code, la hotkey fonctionne, je l'avais mal placée comme me l'a fait remarquer jbnh !!! (hé oui, l'appel placé après la boucle principale c'est pas très malin :evil: )
Donc voila ... j'ai commenté aussi la messagebox d'information (utile seulement pour débug)

Code : Tout sélectionner

;~ #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_outfile=scrolltitle.exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

;~ ============================================================================
;~ ===                          SCRIPT GLOBAL VARS                          ===
;~ ============================================================================

Global $handle, $gnewTitle

;~ ============================================================================
;~ ===                          SCRIPT ENTRY POINT                          ===
;~ ============================================================================

AutoItSetOption("WinTitleMatchMode", 1)
Main("AutoIt Français", "", "Coucou ! Ceci est un titre de fenêtre défilant !!! ", 333)

Func Main($oldTitle, $text, $newTitle, $speed)
    HotKeySet("{scrolllock}", "closeScript")
    WinSetScrollingTitle($oldTitle, $text, $newTitle, $speed)
EndFunc

;~ ============================================================================
;~ ===                          SCRIPT FUNCTIONS                            ===
;~ ============================================================================

Func closeScript()
    AdlibUnRegister("scrollTitle")
    Exit
EndFunc

Func    WinSetScrollingTitle($oldTitle, $text, $newTitle, $speed)

    $handle = WinGetHandle($oldTitle, $text)
    $gnewTitle = $newTitle
;~  MsgBox(0, "Changing Window Title", "Old title was starting with : " & $oldTitle & @CRLF & "New title is : " & $newTitle, 5)

    AdlibRegister("scrollTitle", $speed)
    while 1
        sleep(1000)
    WEnd
EndFunc

;~ ============================================================================
;~ ===                          SCRIPT SUBPROCESS                           ===
;~ ============================================================================

Func    scrollTitle()

    $length = StringLen($gnewTitle)
    $left = StringLeft($gnewTitle, 1)
    $right = StringRight($gnewTitle, $length - 1)

    $gnewTitle = $right & $left

    WinSetTitle($handle, "", $gnewTitle)
EndFunc

Re: [EX] Titre de fenêtre défilant

Posté : lun. 26 juil. 2010 11:59
par jbnh
Salut,

Ca marche. Sinon pour ton hotkeyset sort le de la func pour qu'il marche.

Re: [EX] Titre de fenêtre défilant

Posté : lun. 26 juil. 2010 12:59
par SrBelial
Corrigé, merci à toi !

(je l'ai laissé dans la fonction parce que c'est là sa seule utilité ... en revanche maintenant l'appel est placé avant la boucle d'exécution principale, parce que si on attend après c'est que le script a fini ^__^)