fond d'ecran

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

fond d'ecran

Message par venom »

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


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

je te remercie bien wolfjeremy de ta reponse fiable et rapide pourtant j'ai chercher :) mais j'ai pas trouver :cry: je suis nul dans la recherche je pense :wink:


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Le moteur de recherche de ce forum n'est pas performant, il faut dire ce qui est :wink:
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

Clair que phpbb pour les recherches a du retard..

Pour ton soucis, logiquement en modifiant le regisitre à :

Code : Tout sélectionner

HKEY_CURRENT_USER\Control Panel\Desktop
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. :P

Bon wee à tous
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

bonjour,

ok Ar-S c'est aussi une technique mais c'est domage que ces choses traitent que le bmp sa ne m'arrange pas sa :? .


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

==> BMP clair que sur XP ils auraient pu faire un effort et passer au PNG ou JPG...
Faut donc d'abord convertir le format de l'image cible en bmp.., ce que font tous les softs permettant de changer le wallpaper d'ailleurs (acdsee et autres)
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

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 :wink:

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
il me reste a voir comment choisir aléatoirement un numero de la liste crée et de l'ouvrir.


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

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 ?
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

et bien je t'avoue que j'ai du mal a comprendre :lol: sa vien surement de moi mais dans ce que j'ai compris ici :
créer un .ini ou se trouve
- la liste des images d'un répertoire X
mais si on choisis des images dans differant dossier ? :? .

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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

......
Dernière modification par Backup le mar. 19/août/2014 13:19, modifié 1 fois.
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

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. :wink:
Répondre