Changer L'image de fond du bureau !

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Re: Changer L'image de fond du bureau !

Message par Golfy »

Ar-S a écrit :@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.
La réponse N°3 est juste pour la réthorique... je pense que sur le forum PureBasic, il règne une certaine éthique et un certain niveau de compréhension pour pouvoir décrire toutes les possibilités ! ce n'est pas parce que tu sais que le coté obscur de la Force existe que tu dois l'employer :roll:

Cependant, si cela gêne d'autres membres, je peux enlever cette référence.
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

Re: Changer L'image de fond du bureau !

Message par david »

Code : Tout sélectionner

CanvasGadget ??
J'utilise PureBasic 4.51 (impossible de mettre une autre version car pas(plus) de droits admin sur le PC pour installer un programme) , ou alors il me manque une librairie ???

Du coup je n'ai pas pu tester et je me demande si le code correspond à ça ou bien si 'ça' ne serait pas une solution:

un code qui une fois exécuté:
- créerait en récupérant les dimensions écran une fenetre contenant l'image, et serait affichée par dessus l'arriere plan (genre 'toujours visbile')
- irait 'réafficher' les icones bureau par dessus parceque j'en ai quand meme besoin (faudrait le relancer à chaque boot mais c'est pas trop grave)

Bon on peut rêver, après ça doit quand même etre effectif quand j'affiche le bureau, et ne pas m'empecher d'exécuter d'autres programmes qui tourne en premier plan quand j'en ai besoin (genre excel, word, les prog de l'entreprise...)
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Changer L'image de fond du bureau !

Message par Ar-S »

david a écrit :

Code : Tout sélectionner

CanvasGadget ??
J'utilise PureBasic 4.51 (impossible de mettre une autre version car pas(plus) de droits admin sur le PC pour installer un programme) , ou alors il me manque une librairie ???
Le Canvas est arrivé après la 4.5. Par contre PB est portable, rien ne t'empêche de l'utiliser la 4.61 ou la 5beta2 à partir d'une clé USB.
~~~~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
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

Re: Changer L'image de fond du bureau !

Message par david »

Je n'ai pas CanvasGadget dans la version 4.51 (x86) que j'utilise
J'ai bien téléchargé PureBasic_4_61_x86_(1em4h2).exe.
Il est sur mon PC, mais impossible de l'installer car je n'ai pas d'acces admin pour une installation de programme

Si quelqu'un peut me passer la procedure ou lib que je puisse au moins tester le code

Merci
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Changer L'image de fond du bureau !

Message par Ar-S »

""double post sorry""
Dernière modification par Ar-S le ven. 05/oct./2012 11:14, modifié 1 fois.
~~~~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
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Changer L'image de fond du bureau !

Message par Ar-S »

Je répète
Ar-S a écrit : PB est portable (ne nécessite pas d'être installé), rien ne t'empêche d'utiliser la 4.61 ou la 5beta2 à partir d'une clé USB.
~~~~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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Changer L'image de fond du bureau !

Message par Backup »

sauf bien sur si ... :roll:
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Changer L'image de fond du bureau !

Message par Ar-S »

Dobro a écrit :sauf bien sur si ... :roll:
Je ne crois pas (1em4h2).
Ne repartons pas là dessus :lol:
Fred a dit qu'il gérait ce coté de la chose 8)
~~~~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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Changer L'image de fond du bureau !

Message par Backup »

Ar-S a écrit :Fred a dit qu'il gérait ce coté de la chose 8)
ouaip , ben heureusement qu'il ne gere pas son compte en banque de la meme façon :lol: :lol: :lol:
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Changer L'image de fond du bureau !

Message par Ar-S »

Image :mrgreen:
~~~~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
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

Re: Changer L'image de fond du bureau !

Message par david »

Dans la partie du forum 'application' j'ai trouvé un morceau de code qui permet de créer un deuxième bureau avec les icones du bureau par défaut. Ca me semble etre une piste serieuse par rapport au fait que mon Windows XP Pro sans droits ADMIN ne veut jamais modifier l'image en arriere plan (et oui, j'en suis toujours là).
Cependant je n'arrive pas à modifier l'image avec le code ci-dessous qui est quand même très complexe...

Code : Tout sélectionner


Declare .s FormatMessage(erreur.l)
Declare .l OpenDesktop(nom.s, *desktophd.Long)
Declare CreateProcess(application.s, desktop_name.s, *lpProcessInformation.PROCESS_INFORMATION)




nom_du_bureau.s = "bureau_de_test"
res = OpenDesktop(nom_du_bureau, @desktop_hd)

If res = 0 :MessageRequester("INFO","Erreur lors de la création du bureau : " + nom_du_bureau):End:EndIf
 
If res = 1: MessageRequester("INFO","Création du bureau : " + nom_du_bureau)
   
   ; on lance explorer dans le nouveau bureau, mais juste la 1ère fois
   CreateProcess("C:\Windows\explorer.exe", "bureau_de_test", @information_process.PROCESS_INFORMATION)
Else
   ;MessageRequester("INFO","Ouverture du bureau : " + nom_du_bureau)
EndIf

;CreateProcess("C:\Windows\System32\calc.exe", "bureau_de_test", @information_process.PROCESS_INFORMATION)


;--------------------------------------
Procedure.s FormatMessage(erreur.l)
   lpbuffer.s = Space(255)
   
   FormatMessage_(#FORMAT_MESSAGE_FROM_SYSTEM, 0, GetLastError_(), 0, @lpbuffer, 255, 0)
   
   ProcedureReturn lpbuffer
EndProcedure
;--------------------------------------


;--------------------------------------
Procedure.l CreateDesktop(nom.s)
   Define.SECURITY_ATTRIBUTES lpsa
   
   lpsa\nLength = SizeOf(SECURITY_ATTRIBUTES)
   lpsa\lpSecurityDescriptor = 0
   lpsa\bInheritHandle = #True
   
   
   desktop_hd.l = CreateDesktop_(nom, #NULL$, #Null, 0, #GENERIC_ALL, @lpsa)
   
   ProcedureReturn desktop_hd
EndProcedure

Procedure.l OpenDesktop(nom.s, *desktophd.Long) ; ouvre un bureau existant, ou le créer si il n'existait pas
   *desktophd\l = OpenDesktop_(nom, 0, #True, #GENERIC_ALL)
   
   res = 2 ; le bureau spécifié existe déjà
   
   If *desktophd\l = 0
;       Debug "Le bureau : " + nom + " n'existe pas. On va le recréer."
      
      *desktophd\l = CreateDesktop(nom)
      
      If *desktophd\l = 0
         ; Debug "Création du bureau : " + FormatMessage(GetLastError_())
         ProcedureReturn 0 ; on retourne une erreur
      EndIf
      
      res = 1 ; on crée le bureau, car il n'existait pas
   EndIf
   
   ProcedureReturn res
EndProcedure
;--------------------------------------


;--------------------------------------
Procedure CreateProcess(application.s, desktop_name.s, *lpProcessInformation.PROCESS_INFORMATION)
   
   Define.SECURITY_ATTRIBUTES lpProcessAttributes
   
   With lpProcessAttributes
      \nLength = SizeOf(SECURITY_ATTRIBUTES)
      \lpSecurityDescriptor = 0
      \bInheritHandle = #True
   EndWith
   
   
   Define.STARTUPINFO lpStartupInfo
   
   With lpStartupInfo
      \cb = SizeOf(STARTUPINFO)
      \lpDesktop = @desktop_name
   EndWith
   
   res = CreateProcess_(#Null, #DQUOTE$ + application + #DQUOTE$, lpProcessAttributes, #Null, #True, #NORMAL_PRIORITY_CLASS, #Null, GetPathPart(application), lpStartupInfo, *lpProcessInformation)
   
   If res = 0
      Debug "Failed"
      Debug "CreateProcess : " + FormatMessage(GetLastError_())
   Else
     ; Debug "Created"
   EndIf
   
   ProcedureReturn res
EndProcedure
;--------------------------------------


avec comme commande pour aller sur le nouveau bureau:

Code : Tout sélectionner

SwitchDesktop_(desktop_hd)

et ça pour retourner sur le bureau par défaut

Code : Tout sélectionner

desktop_default = OpenDesktop_("Default", 0, #True, #GENERIC_ALL)
; on retourne sur le bureau par défaut
SwitchDesktop_(desktop_default)
par contre pour ce qui est de modifier l'arriere plan....
je me disais qu'on peut peut-etre laisser l'image originale avec le bureau par défaut
mais profiter de la création d'un bureau2 pour lui affecter une autre image (??)
Répondre