Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 3 của 3
  1. #1
    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);        }    }      }
    Mình attach cả project demo của nó.

    View more random threads:


  2. #2
    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);
    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 [IMG]images/smilies/biggrin.png[/IMG]

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi tom_codon
    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);
    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 [IMG]images/smilies/biggrin.png[/IMG]
    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 [IMG]images/smilies/biggrin.png[/IMG].
    p/s:tom post luôn cái update của tom google translate đi :P

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •