fond d'ecran
fond d'ecran
bonjour,
voila j'aurais voulu savoir si oui ou non, et avec quelle fonction peut t on changer le fond d'ecrant du bureau svp ??
d'avance merci
@++
voila j'aurais voulu savoir si oui ou non, et avec quelle fonction peut t on changer le fond d'ecrant du bureau svp ??
d'avance merci
@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
-
- Messages : 1202
- Inscription : sam. 31/déc./2005 23:52
Voila voila : http://www.purebasic.fr/french/viewtopi ... t=d%E9cran 

-
- Messages : 1202
- Inscription : sam. 31/déc./2005 23:52
Clair que phpbb pour les recherches a du retard..
Pour ton soucis, logiquement en modifiant le regisitre à :
Modifier les données de la valeur "wallpaper" qui indique le chemin de l'image bmp utilisée pour le wallpaper.
Voilou.
Aprés je ne sais pas trop comment on bidouille le registre en PB mais je suis sûr que nos amis plus experts pourront te répondre.
Bon wee à tous
Pour ton soucis, logiquement en modifiant le regisitre à :
Code : Tout sélectionner
HKEY_CURRENT_USER\Control Panel\Desktop
Voilou.
Aprés je ne sais pas trop comment on bidouille le registre en PB mais je suis sûr que nos amis plus experts pourront te répondre.

Bon wee à tous
.Faut donc d'abord convertir le format de l'image cible en bmp.., ce que font tous les softs
oui j'y ai penser. et bien moi mon but c'est de faire un logiciel qui change selon une liste précédament crée, de fond d'ecrant a chaque démarrage de l'ordinateur donc voici ou j'en suis pour l'instant

Code : Tout sélectionner
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
Enumeration
#Text_0
#Frame3D_0
#Frame3D_1
#Frame3D_2
#Frame3D_3
#Listview_0
#Button_0
#Button_1
#Button_2
#save
EndEnumeration
;- Fonts
Global FontID1
FontID1 = LoadFont(1, "Comic Sans MS", 10, #PB_Font_Bold)
Procedure RemoveGadget()
i = 0
Repeat
If GetGadgetItemState(#Listview_0, i) & #PB_ListIcon_Checked ; Si l'item est marqué
RemoveGadgetItem(#Listview_0,i); on le retire
ProcedureReturn RemoveGadget(); on rappelle la procedure
Else
i+1
EndIf
Until i >= CountGadgetItems(#Listview_0) Or CountGadgetItems(#Listview_0) = 0
EndProcedure
Procedure SetWallpaper(FileName.s, Style.s)
; style = 0 : centrer
; style = 2 : étirer
RegOpenKeyEx_(#HKEY_CURRENT_USER, "Control Panel\Desktop\", #Null, #KEY_ALL_ACCESS, @hKey)
RegSetValueEx_(hKey, "WallpaperStyle", #Null, #REG_SZ, @Style, Len(Style) + 1 )
Style = "0"
RegSetValueEx_(hKey, "TileWallpaper", #Null, #REG_SZ, @Style, Len(Style) + 1 )
SystemParametersInfo_(#SPI_SETDESKWALLPAPER, 0, FileName, #SPIF_UPDATEINIFILE | #SPIF_SENDWININICHANGE)
EndProcedure
If OpenWindow(#Window_0, 216, 0, 600, 300, "Auto Desktop", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
If CreateGadgetList(WindowID(#Window_0))
TextGadget(#Text_0, 15, 5, 570, 20, "Changer de font d'ecrant automatiquement ? La solution est sous votre nez ;)", #PB_Text_Center)
SetGadgetFont(#Text_0, FontID1)
Frame3DGadget(#Frame3D_0, 10, 40, 120, 55, "1. ouvrir les images")
Frame3DGadget(#Frame3D_1, 235, 40, 120, 55, "2. enregistrer le travail")
Frame3DGadget(#Frame3D_2, 10, 105, 575, 180, "listes d'images")
Frame3DGadget(#Frame3D_3, 465, 40, 120, 55, "3. suppression")
ListIconGadget(#Listview_0, 20, 125, 555, 150, "nom de l'image", 551, #PB_ListIcon_GridLines|#PB_ListIcon_CheckBoxes)
ButtonGadget(#Button_0, 20, 60, 100, 25, "ouvrir")
ButtonGadget(#Button_1, 245, 60, 100, 25, "enregistrer")
ButtonGadget(#Button_2, 475, 60, 100, 25, "supprimer")
EndIf
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case #Button_0
NomFichier$ = OpenFileRequester("ouvrir images", "","image bitmap (bmp)|*.bmp", 0, #PB_Requester_MultiSelection)
While NomFichier$
res = CountGadgetItems(#Listview_0)
Resultat$ = Str(res)
AddGadgetItem(#Listview_0, Val(Resultat$), NomFichier$)
NomFichier$ = NextSelectedFileName()
Wend
Case #Button_1
nb$ = Str(CountGadgetItems(#Listview_0))
NomFichier1$ = SaveFileRequester("enregistrer sous", "","ini|*.ini", 0)
CreatePreferences(NomFichier1$+".ini")
For a = 0 To Val(nb$)-1
nb1$ = Str(a)
WritePreferenceString(Str(a), GetGadgetItemText(#Listview_0, Val(nb1$), 0))
Next
Case #Button_2
RemoveGadget()
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Le plus simple serait à mon avis de créer un .ini ou se trouve
- la liste des images d'un répertoire X
- un .ini qui inscrit l'image est utilisée.
Au démarrage il compare ini1 et ini2 et affiche une image de ini1 qui n'est pas encore listée sur ini2
Lorsque ini1=ini2 alors ini2 est réinitialisé.
Qu'en penses tu ? c'est pas ce principe non ?
- la liste des images d'un répertoire X
- un .ini qui inscrit l'image est utilisée.
Au démarrage il compare ini1 et ini2 et affiche une image de ini1 qui n'est pas encore listée sur ini2
Lorsque ini1=ini2 alors ini2 est réinitialisé.
Qu'en penses tu ? c'est pas ce principe non ?
et bien je t'avoue que j'ai du mal a comprendre
sa vien surement de moi mais dans ce que j'ai compris ici :
.
si non a part sa j'ai du mal a saisir ton idée qui doit surement fonctionner
.
tu n'aurais pas un petit schema stp a proposé ?
@++

mais si on choisis des images dans differant dossier ?créer un .ini ou se trouve
- la liste des images d'un répertoire X

si non a part sa j'ai du mal a saisir ton idée qui doit surement fonctionner

tu n'aurais pas un petit schema stp a proposé ?
@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Voilà ce que je veux dire :
Pour ini1
Au lancement de l'application, if openfile ini1 else createfile ini1
Un Path$ = GetPathPart(repertoire_a_image$)
ecrire liste des fichiers images dans ce même ini (getfilepart)
Au lancement de l'application, if openfile ini2 else createfile ini2
Vérification image 1 de ini1
wallpaper$=ligne2 de ini2
If ligne2 de ini2 = ligne2 de ini1
passe à ligne suivante
else
wallpaper=image2.jpg de ini2
c'est tout à fait schématique mais ça devrait fonctionner un truc comme ça.
Dobro j'ai pas encore essayé ton code, il est bien obscure pour moi.
Pour ini1
Au lancement de l'application, if openfile ini1 else createfile ini1
Un Path$ = GetPathPart(repertoire_a_image$)
ecrire liste des fichiers images dans ce même ini (getfilepart)
Au lancement de l'application, if openfile ini2 else createfile ini2
Vérification image 1 de ini1
wallpaper$=ligne2 de ini2
If ligne2 de ini2 = ligne2 de ini1
passe à ligne suivante
else
wallpaper=image2.jpg de ini2
c'est tout à fait schématique mais ça devrait fonctionner un truc comme ça.
Dobro j'ai pas encore essayé ton code, il est bien obscure pour moi.
