Pas de problème (pb), que du PowerBuilder (PB) ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 04-09-2007 14:59:12

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

[RESOLU] Wallpaper

Bonjour à tous,

Est-ce que quelqu'un parmis vous a déjà utilisé l'API SystemParametersInfoA de la User32.dll pour changer le wallpaper de son windows ?
En appliquant "bêtement" ce que j'ai trouvé sur le net, cela ne fonctionne pas...

Voici ma déclaration de la fonction

Code: pb

Function uint SystemParametersInfo  (uint uAction , uint uparam, string lpvParam, uint fuWinIni )  Library "User32.dll" alias for "SystemParametersInfoA"


et voici son appel

Code: pb

RegistrySet("HKEY_CURRENT_USER\Control Panel\Desktop","WallpaperStyle",ReguLong!  ,1)
RegistrySet("HKEY_CURRENT_USER\Control Panel\Desktop","TileWallpaper",ReguLong!  , 1)
ll_ret = SystemParametersInfo(SPI_SETDESKWALLPAPER,0, ls_fond, 3)


Cela ne plante pas, mais ça ne donne rien

Précision :
- la variable ls_fond contient le nom complet (avec le path) d'un fichier BMP
- la constante SPI_SETDESKWALLPAPER = 20


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#2 04-09-2007 15:14:13

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4659
Pépites: 945
Banque: 2,147,483,647
Site web

Re: [RESOLU] Wallpaper

oui, mais pas comme ca...

Code: pb

string ls_wallpaper

ls_wallpaper = "C:\WINDOWS\pbadonf.bmp"

SystemParametersInfoA( 20, 0, &
    ls_wallpaper, 1 )

Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 04-09-2007 15:16:54

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Wallpaper

juste en regardant la base de registre il faut aussi modifier
HKEY_CURRENT_USER\Control Panel\Wallpaper
cela doit peut etre se faire automatiquement avec l'Api


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#4 04-09-2007 15:19:12

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Wallpaper

Pas mieux


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#5 04-09-2007 15:28:30

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Wallpaper

pick ouic a écrit:

oui, mais pas comme ca...

Code: pb

string ls_wallpaper

ls_wallpaper = "C:\WINDOWS\pbadonf.bmp"

SystemParametersInfoA( 20, 0, &
    ls_wallpaper, 1 )

tu as déclaré l'API comment ?


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#6 04-09-2007 15:36:33

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2487
Pépites: 88
Banque: 9,223,372,036,854,776,000

Re: [RESOLU] Wallpaper

Ce ne serait pas comme ça par hasard?
(Désolé, je ne peux pas tester sur mon poste )

Code: pb

FUNCTION ulong SystemParametersInfo(ulong uAction,ulong uParam,
                                    any lpvParam,ulong fuWinIni) LIBRARY "user32.dll" 
ALIAS FOR "SystemParametersInfoA"


Sinon, je suppose que tu connais cette page, mais ça intéressera peut-être quelqu'un:

ici


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#7 04-09-2007 15:42:03

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Wallpaper

foon a écrit:

Ce ne serait pas comme ça par hasard?
(Désolé, je ne peux pas tester sur mon poste )

Code: pb

FUNCTION ulong SystemParametersInfo(ulong uAction,ulong uParam,
                                    any lpvParam,ulong fuWinIni) LIBRARY "user32.dll" 
ALIAS FOR "SystemParametersInfoA"

Non pas mieux, j'avais déjà testé.
Y compris avec un ref any pour lpvParam...


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#8 04-09-2007 15:44:44

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Wallpaper

Bon j'ai trouvé

Code: pb

Function ulong SystemParametersInfoA  (ulong uAction , ulong uparam, string lpvParam, ulong fuWinIni )  Library "User32.dll" Alias For "SystemParametersInfoA;ansi"


Il fallait ajouter ;ansi dans l'alias... J'y ai pensé un moment puis j'ai oublié de le faire...
Bon je me donne 1000 pépites


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#9 05-09-2007 07:41:52

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Wallpaper

Donc quand

shahin a écrit:

...
N'oubliez pas ces 3 informations essentielles :
- ...
- Powerbuilder Version (jusqu'au numéro de build)
- ...

je n'avais pas tout à fait tort.

J'avais déjà utilisé SystemParametersInfo, mais avec PB9, et sans l'information essentielle que tu utilise PB10 il était difficile de t'aider.

Pour future référence :
- Cette api ne gère que les bmp, et pas les jpg (ou seulement avec Vista)
- le chiffre 3 correspond à SPIF_UPDATEINIFILE (1) + SPIF_SENDWININICHANGE (2)

Il n'est pas nécessaire d'utiliser RegistrySet pour modifier le fond d'écran, mais pour modifier le style
- WallpaperStyle : 0 : centré, 1 : mosaïque, 2 : étiré
- TileWallpaper : 0 : normal, 1 : mosaïque


never let people work on more than one thing at once.

Hors ligne

 

#10 05-09-2007 08:15:06

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Wallpaper

Tu as raison Shahin. Pan sur mes doigts. Je n'ai pas dit que j'étais en 10.5 sur ce projet...

Pour le reste registry, type de fichier, etc. j'avais déjà les infos.
Mais merci à toi d'en avoir fait un résumé pour les futures recherches...


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#11 05-09-2007 08:19:49

shahin  
Modérateur
Award: bf
Lieu: val de marne
Date d'inscription: 26-09-2006
Messages: 938
Pépites: 8,675,050,269
Banque: 16,218,225,127,617

Re: [RESOLU] Wallpaper

Comme ça on a un topic de référence sur les fonds d'écrans


never let people work on more than one thing at once.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22