Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Thiết lập wallpaper với nhiều định dạng ảnh trong lập trình C#

  1. #1
    Ngày gia nhập
    11 2007
    Nơi ở
    Biết để làm gì?
    Bài viết
    827

    Mặc định 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.
    Visual C# Code:
    1. #region Using directives
    2.  
    3. using System;
    4. using System.Collections.Generic;
    5. using System.ComponentModel;
    6. using System.Data;
    7. using System.Drawing;
    8. using System.Text;
    9. using System.Windows.Forms;
    10. using System.Runtime.InteropServices;
    11. using Microsoft.Win32;
    12. using System.IO;
    13.  
    14. #endregion
    15.  
    16. namespace SetWallpaperTest
    17. {
    18.     public sealed class Wallpaper
    19.     {
    20.         Wallpaper() { }
    21.  
    22.         const int SPI_SETDESKWALLPAPER = 20;
    23.         const int SPIF_UPDATEINIFILE = 0x01;
    24.         const int SPIF_SENDWININICHANGE = 0x02;
    25.  
    26.         [DllImport("user32.dll", CharSet = CharSet.Auto)]
    27.         static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni);
    28.  
    29.         public enum Style : int
    30.         {
    31.             Tiled,
    32.             Centered,
    33.             Stretched
    34.         }
    35.  
    36.         public static void SetWallpaper(Image img, Style style)
    37.         {
    38.             string tempPath = Path.Combine(Path.GetTempPath(), "wallpaper.bmp");
    39.             img.Save(tempPath, System.Drawing.Imaging.ImageFormat.Bmp);
    40.  
    41.             RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Control Panel\Desktop", true);
    42.             if (style == Style.Stretched)
    43.             {
    44.                 key.SetValue(@"WallpaperStyle", 2.ToString());
    45.                 key.SetValue(@"TileWallpaper", 0.ToString());
    46.             }
    47.             else if (style == Style.Centered)
    48.             {
    49.                 key.SetValue(@"WallpaperStyle", 1.ToString());
    50.                 key.SetValue(@"TileWallpaper", 0.ToString());
    51.             }
    52.             else if (style == Style.Tiled)
    53.             {
    54.                 key.SetValue(@"WallpaperStyle", 1.ToString());
    55.                 key.SetValue(@"TileWallpaper", 1.ToString());
    56.             }
    57.  
    58.             SystemParametersInfo(SPI_SETDESKWALLPAPER,
    59.                 0,
    60.                 tempPath,
    61.                 SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE);
    62.         }
    63.     }      
    64. }
    Mình attach cả project demo của nó.
    Attached Files Attached Files
    Cánh Chym ứ mỏi

  2. #2
    Ngày gia nhập
    09 2008
    Bài viết
    9

    Cái này set được nhiều định dạng ảnh vì nó covert tất cả thành bmp mà

    Code:
    string tempPath = Path.Combine(Path.GetTempPath(), "wallpaper.bmp");
                img.Save(tempPath, System.Drawing.Imaging.ImageFormat.Bmp);
    Nó vẽ lại tất cả các ảnh rồi save thành wallpaper.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

  3. #3
    Ngày gia nhập
    11 2007
    Nơi ở
    Biết để làm gì?
    Bài viết
    827

    Trích dẫn Nguyên bản được gửi bởi tom_codon Xem bài viết
    Cái này set được nhiều định dạng ảnh vì nó covert tất cả thành bmp mà

    Code:
    string tempPath = Path.Combine(Path.GetTempPath(), "wallpaper.bmp");
                img.Save(tempPath, System.Drawing.Imaging.ImageFormat.Bmp);
    Nó vẽ lại tất cả các ảnh rồi save thành wallpaper.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
    Uah,vì nó set convert thành .bmp nên việc set wallpaper diễn ra hơi chậm 1 tí. Mình đang tìm các API khác set nhanh hơn .
    p/s:tom post luôn cái update của tom google translate đi :P
    Cánh Chym ứ mỏi

Các đề tài tương tự

  1. Wallpaper Collection - Cát
    Gửi bởi hanghieumilan trong diễn đàn Software (Phần mềm) | Ebooks
    Trả lời: 0
    Bài viết cuối: 07-10-2011, 11:28 PM
  2. Graphic Đưa 1 trang HTML làm Wallpaper desktop
    Gửi bởi h034 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 21-01-2011, 03:29 PM
  3. Thay đổi Wallpaper trong lập trình C#
    Gửi bởi neverland87 trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 6
    Bài viết cuối: 14-08-2008, 10:29 AM
  4. Hot Ebook lập trình thiết kế web rất nhiều.. Có Cả C#
    Gửi bởi nhatquang2008 trong diễn đàn Công cụ, ebooks C#, ASP.NET, và Windows Mobile
    Trả lời: 2
    Bài viết cuối: 24-01-2008, 08:11 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn