Changer L'image de fond du bureau !
Changer L'image de fond du bureau !
Bonjour
Avant que le ancien site soit en panne j'ai pu lire sur un post qu'il étais possible sous PureBasic de changer l'iamge de fond du bureau, je me rappelle bien qu'il y a une variable à modifier dans la base de registre mais j'ai perdu la méthode pour rendre active cette modification une fois faite ...
Y a t'il ici une bonne âme qui ait une meuilleur mémoire que moi, ou qui connaisse la procedure à suivre.
Merci à vous et
BONNE ANNEE A TOUS !
Avant que le ancien site soit en panne j'ai pu lire sur un post qu'il étais possible sous PureBasic de changer l'iamge de fond du bureau, je me rappelle bien qu'il y a une variable à modifier dans la base de registre mais j'ai perdu la méthode pour rendre active cette modification une fois faite ...
Y a t'il ici une bonne âme qui ait une meuilleur mémoire que moi, ou qui connaisse la procedure à suivre.
Merci à vous et
BONNE ANNEE A TOUS !
Denis
Bonne Jounée à tous
Bonne Jounée à tous
Ben non desolé Dobro !!
J'ai modifier le soft qui accepte maintenant divers format d'image :
J'ai modifier le soft qui accepte maintenant divers format d'image :
Code : Tout sélectionner
Procedure SetWallpaper(FileName.s, style.s) ; style = 0 : centrer
RegOpenKeyEx_ ( #HKEY_CURRENT_USER , "Control Panel\Desktop\" , #Null , #KEY_ALL_ACCESS , @hKey)
RegSetValueEx_ (hKey, "WallpaperStyle" , #Null , #REG_SZ , @style, Len (style) + 1 )
RegSetValueEx_ (hKey, "TileWallpaper" , #Null , #REG_SZ , @style, Len (style) + 1 )
SystemParametersInfo_ ( #SPI_SETDESKWALLPAPER , 0, FileName, #SPIF_UPDATEINIFILE | #SPIF_SENDWININICHANGE )
EndProcedure
WPFileName.s = OpenFileRequester ( "Choix de l'image" , "*.*" , "All Files (*.*)|*.*" , 0, 0)
Debug GetFileType(WPFileName)
If GetFileType(WPFileName)<>"Image Wondows Bitmap"
UseJPEGImageDecoder() : UsePNGImageDecoder() : UseTGAImageDecoder() : UseTIFFImageDecoder()
CreateImage(1,1000,800) : LoadImage(1,WPFileName) : SaveImage(1,"c:\Windows\FondActuel.bmp",#PB_ImagePlugin_BMP)
WPFileName.s = "c:\Windows\FondActuel.bmp"
EndIf
If WPFileName <> ""
SetWallpaper(WPFileName, "2" )
EndIf
Denis
Bonne Jounée à tous
Bonne Jounée à tous
Pour Denis !
La fonction GetFileType fait partie de la Lib Droopy !
Une version pour PB 4 de Droopy non officielle est disponible là :
http://gansta93.free.fr/droopyslib/down ... 1.31.4.zip
La fonction GetFileType fait partie de la Lib Droopy !
Une version pour PB 4 de Droopy non officielle est disponible là :
http://gansta93.free.fr/droopyslib/down ... 1.31.4.zip
Denis
Bonne Jounée à tous
Bonne Jounée à tous
Re: Changer L'image de fond du bureau !
Je souhaite modifier l'image arrière plan bureau
J'ai deux ordinateurs qui tournent sur Windows XP Pro (compte utilisateur et pas Admin)
Il y en a un pour lequel ça fonctionne parfaitement, et sur l'autre il ne modifie pas le fond d'écran
Y a il une protection éventuelle causée par une diférence de config entre les 2 ordi? et si oui comment faire?
(ca ne fonctionne pas non plus avec les logiciels de dessin, ou avec l'aperçu qui proposent une commande du genre 'utiliser comme fond d'ecran...')
j'ai utilisé:
ps: j'ai essayé avec cette version car je peux me contenter d'un .BMP (et les exemples aménagés pour .JPG etc... ne fonctionnent pas meme si je met la lib...)
J'ai deux ordinateurs qui tournent sur Windows XP Pro (compte utilisateur et pas Admin)
Il y en a un pour lequel ça fonctionne parfaitement, et sur l'autre il ne modifie pas le fond d'écran
Y a il une protection éventuelle causée par une diférence de config entre les 2 ordi? et si oui comment faire?
(ca ne fonctionne pas non plus avec les logiciels de dessin, ou avec l'aperçu qui proposent une commande du genre 'utiliser comme fond d'ecran...')
j'ai utilisé:
Code : Tout sélectionner
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
cheminapp$=GetCurrentDirectory():cheminapp2$=cheminapp$+"outils\"
FichierParDefaut$ = cheminapp$+"dt_image.bmp" ; Répertoire et fichier par défaut qui seront affichés
Filtre$ = "Image (*.bmp)|*.bmp"
Filtre = 0 ; utiliser par défaut le premier des trois filtres possibles
WPFileName.s = OpenFileRequester("Choisissez une image BMP à charger", FichierParDefaut$, Filtre$, Filtre)
If WPFileName <> ""
SetWallpaper(WPFileName, "2" )
EndIf
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Changer L'image de fond du bureau !
Bonjour david,
Pourrais tu essayer manuellement.
1 - Clic Droit sur un emplacement vide de ton bureau (Window :p)
2 - Onglet Bureau
3 - Choisi une image depuis le bouton parcourir.
Si ça ne fonctionne pas :
Sois tu es un utilisateur restreint
Sois tu as peut être un malware qu'il va falloir éliminer en mode sans échec.
Juste pour info tu peux mettre des jpeg sans lib
Pourrais tu essayer manuellement.
1 - Clic Droit sur un emplacement vide de ton bureau (Window :p)
2 - Onglet Bureau
3 - Choisi une image depuis le bouton parcourir.
Si ça ne fonctionne pas :
Sois tu es un utilisateur restreint
Sois tu as peut être un malware qu'il va falloir éliminer en mode sans échec.
Juste pour info tu peux mettre des jpeg sans lib
Code : Tout sélectionner
WallPaper.s="????"
;Exemple : WallPaper.s="D:\Images\Fonds d'écrans\073.jpg"
SystemParametersInfo_ (#SPI_SETDESKWALLPAPER, 0, WallPaper, 0)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Changer L'image de fond du bureau !
Je pense en effet être un utilisateur restreint (je n'ai pas beaucoup d'options avec le clic droit sur le bureau, si ce n'est de réorganiser les icones ou de creer un nouveau dossier).
Je pense qu'il ne me sera pas possible de passer outre à part d'avoir un code administrateur (que je n'ai pas).
Alors, je sais qu'on va me répondre que le forum n'a pas de but de piratage, que si c'est vérouillé c'est parceque ça doit l'etre... mais j'ai promis à ma collègue que je lui mettrais la photo de ses rêves en arrière plan, et je trouve ça trop triste d'être en echec pour une image. Ils sont pas sympa chez windows, tout le monde devrait pouvoir choisir son arriere plan, même sur xp pro
Je pense qu'il ne me sera pas possible de passer outre à part d'avoir un code administrateur (que je n'ai pas).
Alors, je sais qu'on va me répondre que le forum n'a pas de but de piratage, que si c'est vérouillé c'est parceque ça doit l'etre... mais j'ai promis à ma collègue que je lui mettrais la photo de ses rêves en arrière plan, et je trouve ça trop triste d'être en echec pour une image. Ils sont pas sympa chez windows, tout le monde devrait pouvoir choisir son arriere plan, même sur xp pro
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Changer L'image de fond du bureau !
Sous XP tu fermes ta session. Tu vas revenir sur la sélection d'un utilisateur.
Au lieu de sélectionner un utilisateur. Utilise la combinaison de touche Ctrl + Alt + Suppr.
Utilises comme nom d'utilisateur administrateur (ou administrator si version US)
Pas de mot de passe puis Ok.
Une fois connecté, Panneau de configuration puis Comptes d'utilisateurs.
Tu sélectionnes le compte concerné et tu modifies le type de compte. (Administrateur de l'ordinateur au lieu de Limité)
Je ne sais pas si sous XP Pro ça fonctionne, mais sous XP classique, ça fonctionne toujours.
Au lieu de sélectionner un utilisateur. Utilise la combinaison de touche Ctrl + Alt + Suppr.
Utilises comme nom d'utilisateur administrateur (ou administrator si version US)
Pas de mot de passe puis Ok.
Une fois connecté, Panneau de configuration puis Comptes d'utilisateurs.
Tu sélectionnes le compte concerné et tu modifies le type de compte. (Administrateur de l'ordinateur au lieu de Limité)
Je ne sais pas si sous XP Pro ça fonctionne, mais sous XP classique, ça fonctionne toujours.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Changer L'image de fond du bureau !
Celui qui t'a filé le post connait-il tes capacités de bidouillage ?david a écrit : Alors, je sais qu'on va me répondre que le forum n'a pas de but de piratage, que si c'est vérouillé c'est parceque ça doit l'etre... mais j'ai promis à ma collègue que je lui mettrais la photo de ses rêves en arrière plan, et je trouve ça trop triste d'être en echec pour une image. Ils sont pas sympa chez windows, tout le monde devrait pouvoir choisir son arriere plan, même sur xp pro

Plus sérieusement, si tu es sur un PC géré par ton entreprise, la DSI a probablement mis des GPO en place pour limiter les droits.
1) tu demandes à la DSI le droit de changer le fond d'écran
2) tu demandes à la DSI d'avoir les droits d'admin local de ton poste
3) tu t'attaques au mot de passe de l'admin avec un soft comme Cain & Abel : une fois que tu as ce mot de passe... tu fais ce que tu veux (mais parfois les GPO sont exécutés à chaque boot et écrasent donc tes modifs)
Bon courage !
PS : bonne chance pour ton plan drague

Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
http://golfy.olympe.in/Teo-Tea/
Re: Changer L'image de fond du bureau !
@Golfy, Tu as le droit de supprimer ton numéro 3
il y a assez de tuto sur le net pour ce genre de chose, pas la peine de ça sur le forum PB selon moi.
--------------------
Si tu n'as pas d'icones sur le bureau (ou peu), tu peux te faire un programme sans barre systeme avec un Canvas de la taille de ton ecran - hauteur de la barre des taches et de l'affiché.
Comme je suis en plein dans mon cropcrop, voilà qui devrait faire l'affaire.
Tu quittes avec un clique gauche ou droit.
il te restera à centrer les images plus petites que ton écran en modifiant le DrawImage()

il y a assez de tuto sur le net pour ce genre de chose, pas la peine de ça sur le forum PB selon moi.
--------------------
Si tu n'as pas d'icones sur le bureau (ou peu), tu peux te faire un programme sans barre systeme avec un Canvas de la taille de ton ecran - hauteur de la barre des taches et de l'affiché.
Comme je suis en plein dans mon cropcrop, voilà qui devrait faire l'affaire.
Tu quittes avec un clique gauche ou droit.
Code : Tout sélectionner
UseJPEGImageDecoder()
Enumeration
#WIN
#CANVAS
#image
EndEnumeration
Procedure.c GetBarHeight()
; +--------------------------------------------------------------------------+
; | Code original de GallyHC modifié par Ar-S |
; +--------------------------------------------------------------------------+
#ABM_GETSTATE = 4
#ABM_GETTASKBARPOS = 5
Structure lNXY
width.l
height.l
EndStructure
Define Barre.lNXY
Define Cadre.RECT
Define BarreData.APPBARDATA
SHAppBarMessage_(#ABM_GETTASKBARPOS, BarreData)
SHAppBarMessage_(#ABM_GETSTATE, BarreData)
Cadre\left = BarreData\rc\left
Cadre\right = BarreData\rc\right
Cadre\top = BarreData\rc\top
Cadre\bottom = BarreData\rc\bottom
Barre\width = Cadre\right - Cadre\left
Barre\height = Cadre\bottom - Cadre\top
If Cadre\left < 1 And Cadre\top > 0 And (Barre\width > Barre\height)
BarPos = 1 ; bas
EndIf
If Cadre\left < 1 And Cadre\top < 1 And (Barre\width < Barre\height)
BarPos = 2 ; gauche
EndIf
If Cadre\left > 1 And Cadre\top < 1 And (Barre\width < Barre\height)
BarPos = 3 ; haut
EndIf
If Cadre\left < 1 And Cadre\top < 1 And (Barre\width > Barre\height)
BarPos = 4 ; haut
EndIf
If BarPos = 1
HauteurBarre = Cadre\bottom - Cadre\top
ProcedureReturn HauteurBarre
Else
ProcedureReturn 0
EndIf
EndProcedure
Ecran_X = GetSystemMetrics_(0)
Ecran_Y = GetSystemMetrics_(1) - GetBarHeight()
If OpenWindow(#WIN, 0, 0, Ecran_X, Ecran_Y, "WALLPAPER", #PB_Window_BorderLess)
CanvasGadget(#CANVAS, 0, 0, Ecran_X, Ecran_Y,#PB_Canvas_DrawFocus|#PB_Canvas_ClipMouse)
FichierImage$ = "E:\MULTIMEDIA\PUREBASIC\4.40\CropCrop\1700x1200.jpg"
Image = LoadImage(#image, FichierImage$)
If Image
Limg = ImageHeight(#image)
Himg = ImageHeight(#image)
; LSI
If Himg > Ecran_Y Or Limg > Ecran_X
If Ecran_X * Himg <= Limg * Ecran_Y
newL = Ecran_X
newH = Himg * Ecran_X / Limg
Else
newL = Limg * Ecran_Y / Himg
newH = Himg * Ecran_Y
EndIf
EndIf
StartDrawing(CanvasOutput(#CANVAS))
DrawImage(ImageID(#image), 0, 0)
StopDrawing()
Else
MessageRequester( " Erreur ", " image introuvable " , #MB_OK ) ;-TEST
End
EndIf
Repeat
Select WaitWindowEvent()
; ///////////////////
Case #PB_Event_Gadget
Select EventGadget()
Case #CANVAS
Select EventType()
Case #PB_EventType_LeftButtonDown, #PB_EventType_RightClick
FreeImage(#image)
End
EndSelect
EndSelect
Case #PB_Event_CloseWindow
Select EventWindow()
Case #WIN
CloseWindow(#WIN)
Break
EndSelect
EndSelect
ForEver
EndIf
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels