Page 1 sur 1

fond d'ecran

Publié : ven. 31/août/2007 16:57
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


@++

Publié : ven. 31/août/2007 17:11
par wolfjeremy

Publié : ven. 31/août/2007 17:15
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:


@++

Publié : ven. 31/août/2007 18:28
par wolfjeremy
Le moteur de recherche de ce forum n'est pas performant, il faut dire ce qui est :wink:

Publié : sam. 01/sept./2007 7:48
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

Publié : sam. 01/sept./2007 9:07
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 :? .


@++

Publié : sam. 01/sept./2007 9:29
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)

Publié : sam. 01/sept./2007 9:53
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.


@++

Publié : sam. 01/sept./2007 10:21
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 ?

Publié : sam. 01/sept./2007 10:58
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é ?


@++

Publié : sam. 01/sept./2007 10:59
par Backup
......

Publié : sam. 01/sept./2007 15:34
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: