otofraise
Messages postés66Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention 4 novembre 2010
-
13 janv. 2005 à 21:57
otofraise
Messages postés66Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention 4 novembre 2010
-
14 janv. 2005 à 18:35
Bonjour a tous,
Habitue au c++, je debute avec c# et je dois dire que je suis pomme .
J'aimerais utiliser les api windows mais voila, je ne retrouve pas mes bon vieux #include, et je ne sais pas quel espace de nom utilise pour retrouver les constantes utililes a l'utilisation des api (genre windows.h).
La fonction que je cherche a utiliser particulierement est SystemParametersInfo qui utilise les contante type SPI_
J'ai egalement vu que l'on pouvait importer des dll avec DllImport, mais je n'ai pas tout compris.
cs_coq
Messages postés6351Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 13 janv. 2005 à 22:24
regarde sur http://pinvoke.net/ en plus tu n'auras même pas besoin de chercher les valeurs SPI_* dans les .h, il y a aussi un enum de fournis quand tu y recherche SystemParametersInfo :-)
otofraise
Messages postés66Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention 4 novembre 2010 14 janv. 2005 à 10:01
Merci bien pour ce site Coq, il va m'etre super util.
Je comprend deja un peu mieux l'utilisation de DllImport avec leurs exemples.
Vraiment un bon site, encore merci !!
Par contre j'ai toujours un soucis, hehe, je veux utiliser cette fonction (SystemParametersInfo) pour modifier le WallPaper du bureau. Je modifie bien la base de registre, d'ailleur la fenetre des propriete d'affichage me montre bien le wallpaper selectionne, mais le bureau lui n'est pas rafraichi. Si je clique sur Actualiser, il ne change pas non plus de papier peint. Il semble donc qu'il faille signaler que les paremetre utilisateur ont changes, d'ou l'utilisation de la fonction SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "FileName", SPIF_UPDATEINIFILE) (vu sur cppfrance)
Et bien meme avec cette fonction le papier peint reste inchange.
cs_coq
Messages postés6351Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 14 janv. 2005 à 10:09
Ba le truc c'est que j'apprend au fur et à mesure lol
Et il me reste encore qq points obscurs comme la façon de déterminer qu'une struct à besoin d'une valeur Pack différente de celle par défaut, et aussi comment la déterminer en dehors de "teste des valeurs jusqu'a ce que ça marche" ^^
otofraise
Messages postés66Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention 4 novembre 2010 14 janv. 2005 à 11:49
Salut Mx,
Je suis alle sur le lien que tu m'as indique mais va savoir pkoi, il m'a renvoyer sur vb.
M'enfin, je ne me suis pas laisse decourage pour autant et j'ai suivi ta piste, en cherchant sur csharp ce qui pouvait avoir un rapport avec les Wallpaper, et j'ai trouve. Il semblerait qu'il faille d'abord copier l'image dans un bitmap et utilise se bitmap pour changer l'arriere plan. J'ai essaye et en effet sa marche...... presque car il me faut encore cliquer sur Actualiser pour que le bureau se reinitialise, mais ya deja du progres, alors merci a tous !!!
cs_gulix
Messages postés25Date d'inscriptionlundi 31 mars 2003StatutMembreDernière intervention14 mars 2005 14 janv. 2005 à 13:53
Si tu as suivi le code indiqué par Mx, il s'agit de ma classe
Wallpaper. Pour ton problème de rafraîchissement, cela est peut-être du
à un problème d'Active Desktop. Il me semble que j'ai eu ce problème il
y a quelques temps.
Parce que, sinon, j'arrive à modifier sans rafraîchissement le fond
d'écran sous XP Home et 2000 Pro (pas essayer sous d'autres OS)
otofraise
Messages postés66Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention 4 novembre 2010 14 janv. 2005 à 14:21
Salut Gulix,
Merci pour tes indications.
J'ai reessayer le lien et en effet cette fois il m'a conduit a ta source (tout a l'heure il m'a a deux reprises redirige sur vb )
Nos codes sont tres proches pour ne pas dire identiques mis a part les noms de variable.
J'ai redemarrer la machine, mais ya pas a faire y veux pas me reactualiser tout seul le fond.
Alors sinon j'ai trouve un autre moyen avec msdn : IActiveDesktop.
et sur http://dynamic-sysop.co.nr/ il donne un exemple d'utilisation avec c#.
Et la pouf mon fond d'ecran s'est rafraichi aussi sec..... mais une seule fois . Apres il ne rafraichissait plus, meme avec Actualiser alors que dans la fenetre des parametres d'affichage, l'arriere plan etait le bon.
otofraise
Messages postés66Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention 4 novembre 2010 14 janv. 2005 à 18:35
Hehehe Gulix, merci !!!
J'ai encore fouille un petit peu et ca y est !! en fait, en plus de modifier le wallpaper, j'ai comme toi ajoute la modification de la couleur de fond. Et maintenant, le bureau est bien reactualise automatiquement.