-
14-12-2008, 04:40 PM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Thiết lập wallpaper với nhiều định dạng ảnh trong lập trình C#
Bạn muốn làm 1 chương trình quản lý ảnh có chức năng set wallpaper! Đã có 1 tut của Nerverland về cái này nhưng chỉ set đc với các ảnh bmp ! Lang thang trên codeproject tìm đc cái này có thể set wallpaper cho nhiều đinh dạng ảnh khác nữa .
Đây là 1 sealed class,khi nào cần dùng trong project của mình các bạn chỉ cần add nó vào là xài thoải mài.
Mã:#region Using directives using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Runtime.InteropServices;using Microsoft.Win32;using System.IO; #endregion namespace SetWallpaperTest{ public sealed class Wallpaper { Wallpaper() { } const int SPI_SETDESKWALLPAPER = 20; const int SPIF_UPDATEINIFILE = 0x01; const int SPIF_SENDWININICHANGE = 0x02; [DllImport("user32.dll", CharSet = CharSet.Auto)] static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni); public enum Style : int { Tiled, Centered, Stretched } public static void SetWallpaper(Image img, Style style) { string tempPath = Path.Combine(Path.GetTempPath(), "wallpaper.bmp"); img.Save(tempPath, System.Drawing.Imaging.ImageFormat.Bmp); RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Control Panel\Desktop", true); if (style == Style.Stretched) { key.SetValue(@"WallpaperStyle", 2.ToString()); key.SetValue(@"TileWallpaper", 0.ToString()); } else if (style == Style.Centered) { key.SetValue(@"WallpaperStyle", 1.ToString()); key.SetValue(@"TileWallpaper", 0.ToString()); } else if (style == Style.Tiled) { key.SetValue(@"WallpaperStyle", 1.ToString()); key.SetValue(@"TileWallpaper", 1.ToString()); } SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, tempPath, SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE); } } }
View more random threads:
- Tìm tất cả các form trong ứng dụng MDI với lập trình C#
- viết hàm đọc viết số phức ra file ??? Mình viết nó bị lỗi mọi người xem dùm mình với :((
- Kinh nghiệm lập trình C#
- Chia sẻ code thủ thuật quan trọng trong lập trình website, đó chính là nén tất cả file javascript, css thành một file
- Chuyển đổi các kiểu dữ liệu cơ bản sang mảng Byte trong C#.
- Cải tiến thuật toán Quick sort
- Giới thiệu với các bạn bộ thư viện Serialize, Deserialize object ra mảng bytes và từ mảng bytes ra đối tượng một cách đơn giản
- Windowsform | Dòng chữ chạy (không thay đổi location)
- NỘI THẤT phòng ngủ, nơi quan trọng để giữ lửa tình yêu
- Làm việc với Agent (Nhân vật hoạt hình) trong lập trình C#
-
16-12-2008, 08:27 AM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Cái này set được nhiều định dạng ảnh vì nó covert tất cả thành bmp mà [IMG]images/smilies/smile.png[/IMG]
Mã:string tempPath = Path.Combine(Path.GetTempPath(), "wallpaper.bmp"); img.Save(tempPath, System.Drawing.Imaging.ImageFormat.Bmp);
Sau đó mới set.
Kiểu này được sử dụng nhiều vì nó set đc tất cả các phiên bản windows.Hồi lâu lâu trước đây Tom có làm 1 cái thì thấy đối với windows vista và Windows 7 thì chỉ cần viết chỉnh REG thì cũng set được Wapper rồi.
Nên code này 1 thời gian nữa sẽ thành đồ cổ mất rồi [IMG]images/smilies/biggrin.png[/IMG]
-
16-12-2008, 09:27 AM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi tom_codon
p/s:tom post luôn cái update của tom google translate đi :P
Ngọc Bích xanh bản chất thuộc dòng đá đá hoa (jade). Và cẩm thạch là tên gọi chung của ngọc bích. Vì thực chất chúng thuộc dòng đá đa khoáng được hình thành từ chất Silicat dưới dạng dioxy. Ngọc bích...
Chia sẻ Vòng tay ngọc bích xanh là...