Bonsoir,
Je commence a me répondre:
La procédure
GetSysColor_(#COLOR_DESKTOP) fonctionne comme attendue et retourne bien la couleur de fond du bureau.
Cette valeur est a conserver pour pouvoir remettre la couleur de fond du bureau a sa valeur initiale.
La moitié du chemin est parcourue, reste a changer la couleur de fond du bureau.
C'est là que ça coince, la procédure
SetSysColors_(#window,#COLOR_BACKGROUND,RGB(0,0,0)) ne semble pas fonctionner comme je le pensais.
Il me manque peut-être une commande pour rafraichir (actualiser) l'écran.
Quelqu'un aurait-il une idée ?
Voici un exemple de mes recherches:
Code : Tout sélectionner
EnableExplicit
EnableDebugger
#window =20 ; il faut bien choisir une valeur, alors 20, c'est parfait
#screen1=0 ; valeur supposée
#screen2=1 ; valeur supposée
Define desktop,couleur,Event
desktop=GetDesktopWindow_() : Debug "desktop="+desktop+" / $"+Hex(desktop)
couleur=GetSysColor_(#COLOR_DESKTOP) : Debug "couleur="+couleur+" / $"+Hex(couleur)
Debug "couleur=RGB ("+Red(couleur)+","+Green(couleur)+","+Blue(couleur)+")"
Debug "couleur=RGBA("+Red(couleur)+","+Green(couleur)+","+Blue(couleur)+","+Alpha(couleur)+")"
If OpenWindow(#window,100,100,600,400,"Window")
; on vérifie que la couleur de la fenêtre est identique a la couleur de fond du bureau
; la vérification est visuelle
SetWindowColor(#window,couleur)
; les 2 commandes suivantes retournent 0, soit une erreur est survenu.
; donc la commande ne s'applique pas a la fénêtre en cours
Debug "test avec #window ="+#window
Debug SetSysColors_(#window,#COLOR_BACKGROUND,RGB(0,0,0))
Debug SetSysColors_(#window,#COLOR_BACKGROUND,RGBA(0,0,0,0))
; les 2 commandes suivantes retournent 1, soit la commande c'est bien dérolée.
; on peut penser que la valeur 0 représente le premier bureau, la valeur 1 le second burea,...
; je n'ai qu'un écran disponible
Debug "test avec #screen1 = "+#screen1
Debug SetSysColors_(#screen1,#COLOR_BACKGROUND,RGB(0,0,0))
Debug SetSysColors_(#screen1,#COLOR_BACKGROUND,RGBA(0,0,0,0))
; les 2 commandes suivantes retournent 0, soit une erreur est survenu.
Debug "test avec #screen2 = "+#screen2
Debug SetSysColors_(#screen2,#COLOR_BACKGROUND,RGB(0,0,0))
Debug SetSysColors_(#screen2,#COLOR_BACKGROUND,RGBA(0,0,0,0))
Repeat
Event=WaitWindowEvent(50)
Until Event=#PB_Event_CloseWindow
EndIf
End
cage