Coucou,
Comment on fait pour changer l'arrière plan à l'aide d'un programme C#? Je n'ai pas réussi en utilisant le registre.. Il y a t'il un autre moyen pour cela? Marci
Coucou,
Comment on fait pour changer l'arrière plan à l'aide d'un programme C#? Je n'ai pas réussi en utilisant le registre.. Il y a t'il un autre moyen pour cela? Marci
Extrait d'un de mes programmes que j'ai fait pour ne pas à me faire ch*** à chercher un fond d'écran sur mon pc ( j'en ai des centaines )
ps. C'est long
note. Il y a un bug qui fait que lorsque l'on démarre Windows, c'est l'ancien fond d'écran qui est activé. Je crois qu'il peut être répparé par l'utilisation de SPIF_UPDATEINIFILE, mais avec je rencontrait des bugs sur d'autres Windows ( même XP ) ...[/code]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94 [Serializable] public class WallPaperEntry { public string FileName = ""; public int UsageCount = 0; public enum Style : int { Tiled, Centered, Stretched } public Style ImageStyle = Style.Stretched; [DllImport("user32.dll", CharSet = CharSet.Auto)] static extern int SystemParametersInfo( int uAction, int uParam, string lpvParam, int fuWinIni); const int SPI_SETDESKWALLPAPER = 20; const int SPIF_UPDATEINIFILE = 0x1; const int SPIF_SENDWININICHANGE = 0x2; string GetTempWallPath() { string sRet = Application.LocalUserAppDataPath + Path.DirectorySeparatorChar + "WallPaper" + Path.DirectorySeparatorChar + "CurrentWallPaper.bmp"; if(!Directory.Exists(Path.GetDirectoryName(sRet))) Directory.CreateDirectory(Path.GetDirectoryName(sRet)); return sRet; } public void ApplyWallpaper() { if(!File.Exists(FileName)) { MessageBox.Show(String.Format("Impossible de spécifier ce fond d\'écran. L\'image {0} n\'existe pas",FileName), "Attention", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } string bPath = ""; Image bm = Image.FromFile(FileName); bm.Save(GetTempWallPath (),System.Drawing.Imaging.ImageFormat.Bmp); bPath = GetTempWallPath(); RegistryKey key = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop", true); switch( ImageStyle ) { case Style.Stretched : key.SetValue(@"WallpaperStyle", "2") ; key.SetValue(@"TileWallpaper", "0") ; break; case Style.Centered : key.SetValue(@"WallpaperStyle", "1") ; key.SetValue(@"TileWallpaper", "0") ; break; case Style.Tiled : key.SetValue(@"WallpaperStyle", "1") ; key.SetValue(@"TileWallpaper", "1") ; break; } key.Close(); SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, bPath,SPIF_SENDWININICHANGE); } }
Sympa ce petit programme: j'en avais fait un du même genre aussi
Merci du programme mais je n'ai pas dit ce que je dois mettre en arrière plan.. Je veux pouvoir mettre une page .htm en arrière plan :/ Help
Désolée c'est moi qui ai écrit ça, j'avais pas vu que j'avais le pseudo de mon frèreEnvoyé par System
Je ne crois pas que l'on puisse faire celà directement. Il faudrait peut être mieu chercher un moyen de transformer la page htm en imageEnvoyé par System
MMhh mais je crois qu'il y a moyen d'ouvrir une page web dont le container est justement le Desktop , par les API mais j'avoue que là j'ai un trou de mémoire sur la méthode désolé
http://www.javascriptkit.com/howto/active.shtml
bon, j'ai trouvé ça
là, je peut pas faire grand chose sur mon pc ( petite manipulation coûteuse en HDD ), mais tu pourrais alors essayer de remplacer l'image directement par une page html avec mon code pour voir ce que ça fait ( dans le pire des cas, ça va faire boom, mais bon )"Background" tab. Click the browse button and find an HTML document on your hard drive to use as your background.
En passant peut être par cette Interface IActiveDesktop
Dans ce cas :
http://www.pinvoke.net/default.aspx/...veDesktop.html
za marche
Bon, maintenant, pour l'interface IActiveDesktop, j'avoue que j'ai du me battre et aller chercher à droite et à gauche les différents paramètres, ce qui résulte d'un code de 294 lignes, donc je ne crois pas que je peut le poster ici. Peut être qu'il y avais plus simple mais si vous voulez le code ... ask me ( ou bien alors dites, si je peut poster ici ce code )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 static IActiveDesktop Dsk = GetActiveDesktop(); ... ... bPath = @"C:\Documents and Settings\Audrey\Bureau\IActiveDesktop.html"; WALLPAPEROPT opt = new WALLPAPEROPT(); opt.dwStyle = WPSTYLEe.WPSTYLE_STRETCH; Dsk.SetWallpaperOptions(ref opt,0); Dsk.SetWallpaper(bPath,0); Dsk.ApplyChanges(AddApplyFlags.AD_APPLY_ALL); SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, bPath,SPIF_SENDWININICHANGE);
Ben autant faire un article à ce sujetEnvoyé par smyley
bonne idée je vais peut être bien le faire ou alors en faire un code source de la section C#
Donc en attandant, mp pour les demandeurs
bonjour...
bon je vien de me choper un virus... je lai suup mais je sais pas se qu il a modif maintenant je peu plus modifier mon arriere plan windob. le virus a lui, mi un arriere plan (en .html... ) et je sais pas pourqoui, je peut plus changer mon arriere plan dans propriete etc... je peut rien changer... vu que vous creez des log pour le modif comme ca... quelqu'un aurai la solution du moin comment le virus a pu agir et voir se kon peu fair.
merci
Partager