用C#改变你的桌面墙纸

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.IO; 



namespace WallChange
{ 
 
 
 
 /// 
 /// Summary description for Form1.
 /// 
 public class Form1 : System.Windows.Forms.Form
 {
  private System.Windows.Forms.Button button1;
  private System.Windows.Forms.OpenFileDialog openFileDialog1;
  private System.Windows.Forms.Button button2;
  public const int SPI_SETDESKWALLPAPER = 20;
  public const int SPIF_SENDCHANGE = 0x2;
  public int picIndex ;
  private System.ComponentModel.IContainer components;
  private System.Windows.Forms.CheckedListBox mycheckedListBox;
  private System.Windows.Forms.Button btnDel;
  private System.Windows.Forms.Timer timer1;
  string fileName;
  string localPath;
  private System.Windows.Forms.Label label1;
  private System.Windows.Forms.CheckBox checkBox1;
  private System.Windows.Forms.ComboBox cmbTime;
  private int GlobalTimer;
  private int timerInterval;
  int[] myArray;
  
  public Form1()
  {
   //
   // Required for Windows Form Designer support
   //
   InitializeComponent();

   //
   // TODO: Add any constructor code after InitializeComponent call
   //
   GlobalTimer = 0;
   timerInterval = 20;
   
   myArray  = new int[] {1, 2, 5, 10, 30 ,60 ,120 ,1440, 2880};
   localPath = System.IO.Directory.GetCurrentDirectory();
   picIndex = 0;
  }

  /// 
  /// Clean up any resources being used.
  /// 
  protected override void Dispose( bool disposing )
  {
   if( disposing )
   {
    if (components != null) 
    {
     components.Dispose();
    }
   }
   base.Dispose( disposing );
  }

  #region Windows Form Designer generated code
  /// 
  /// Required method for Designer support - do not modify
  /// the contents of this method with the code editor.
  /// 
  private void InitializeComponent()
  {
   this.components = new System.ComponentModel.Container();
   System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
   this.button1 = new System.Windows.Forms.Button();
   this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
   this.button2 = new System.Windows.Forms.Button();
   this.mycheckedListBox = new System.Windows.Forms.CheckedListBox();
   this.btnDel = new System.Windows.Forms.Button();
   this.timer1 = new System.Windows.Forms.Timer(this.components);
   this.label1 = new System.Windows.Forms.Label();
   this.checkBox1 = new System.Windows.Forms.CheckBox();
   this.cmbTime = new System.Windows.Forms.ComboBox();
   this.SuspendLayout();
   // 
   // button1
   // 
   this.button1.Location = new System.Drawing.Point(64, 8);
   this.button1.Name = "button1";
   this.button1.Size = new System.Drawing.Size(64, 24);
   this.button1.TabIndex = 0;
   this.button1.Text = "Change";
   this.button1.Click += new System.EventHandler(this.button1_Click);
   // 
   // button2
   // 
   this.button2.Location = new System.Drawing.Point(8, 8);
   this.button2.Name = "button2";
   this.button2.Size = new System.Drawing.Size(48, 24);
   this.button2.TabIndex = 2;
   this.button2.Text = "&Open";
   this.button2.Click += new System.EventHandler(this.button2_Click);
   // 
   // mycheckedListBox
   // 
   this.mycheckedListBox.ColumnWidth = 300;
   this.mycheckedListBox.HorizontalScrollbar = true;
   this.mycheckedListBox.Location = new System.Drawing.Point(8, 48);
   this.mycheckedListBox.Name = "mycheckedListBox";
   this.mycheckedListBox.Size = new System.Drawing.Size(440, 154);
   this.mycheckedListBox.Sorted = true;
   this.mycheckedListBox.TabIndex = 3;
   this.mycheckedListBox.SelectedIndexChanged += new System.EventHandler(this.mycheckedListBox_SelectedIndexChanged);
   // 
   // btnDel
   // 
   this.btnDel.Location = new System.Drawing.Point(136, 8);
   this.btnDel.Name = "btnDel";
   this.btnDel.Size = new System.Drawing.Size(64, 24);
   this.btnDel.TabIndex = 4;
   this.btnDel.Text = "Delete";
   this.btnDel.Click += new System.EventHandler(this.btnDel_Click);
   // 
   // timer1
   // 
   this.timer1.Enabled = true;
   this.timer1.Interval = 5000;
   this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
   // 
   // label1
   // 
   this.label1.Location = new System.Drawing.Point(376, 8);
   this.label1.Name = "label1";
   this.label1.Size = new System.Drawing.Size(72, 24);
   this.label1.TabIndex = 5;
   this.label1.Text = "Written By : Kfir Arbel";
   this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
   // 
   // checkBox1
   // 
   this.checkBox1.Location = new System.Drawing.Point(208, 8);
   this.checkBox1.Name = "checkBox1";
   this.checkBox1.Size = new System.Drawing.Size(80, 24);
   this.checkBox1.TabIndex = 6;
   this.checkBox1.Text = "Random";
   // 
   // cmbTime
   // 
   this.cmbTime.Items.AddRange(new object[] {
               "1 min",
               "2 min",
               "5 min",
               "10 min",
               "30 min",
               "1 hour",
               "2 hour",
               "1 Day",
               "2 Day"});
   this.cmbTime.Location = new System.Drawing.Point(280, 8);
   this.cmbTime.Name = "cmbTime";
   this.cmbTime.Size = new System.Drawing.Size(72, 21);
   this.cmbTime.TabIndex = 7;
   this.cmbTime.Text = "Time";
   this.cmbTime.SelectedIndexChanged += new System.EventHandler(this.cmbTime_SelectedIndexChanged);
   // 
   // Form1
   // 
   this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
   this.ClientSize = new System.Drawing.Size(472, 221);
   this.Controls.Add(this.cmbTime);
   this.Controls.Add(this.checkBox1);
   this.Controls.Add(this.label1);
   this.Controls.Add(this.btnDel);
   this.Controls.Add(this.mycheckedListBox);
   this.Controls.Add(this.button2);
   this.Controls.Add(this.button1);
   this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
   this.Name = "Form1";
   this.Text = "WallPaper";
   this.WindowState = System.Windows.Forms.FormWindowState.Minimized;
   this.Load += new System.EventHandler(this.Form1_Load);
   this.ResumeLayout(false);

  }
  #endregion

  /// 
  /// The main entry point for the application.
  /// 
  [STAThread]
  static void Main() 
  {
   Application.Run(new Form1());
  }

  private void button1_Click(object sender, System.EventArgs e)
  {
  
   //if (File.Exists(textBox1.Text))
   //{
   fSetBMP();
   int nResult =  WinAPI.SystemParametersInfo(SPI_SETDESKWALLPAPER,1,fileName,SPIF_SENDCHANGE);
   
   UpdateFile();
   
  }
  private void fSetBMP()
  {
   
   picIndex  = (picIndex + 1) % mycheckedListBox.CheckedItems.Count;
   if (checkBox1.Checked == true )
   {
    Random rnd  = new Random();
    
    picIndex  = ( rnd.Next(mycheckedListBox.CheckedItems.Count)) 
        % mycheckedListBox.CheckedItems.Count;
   }


   mycheckedListBox.SelectedIndex = picIndex;
   if (fileName.EndsWith (".jpg") ||
    fileName.EndsWith (".JPG") ||
    fileName.EndsWith (".Jpg") || 
    fileName.EndsWith (".jpeg") ||
    fileName.EndsWith (".JPEG") ||
    fileName.EndsWith (".Jpeg")  
    )
   {
    Bitmap theImage = new Bitmap(fileName);
    theImage.Save (localPath + "/new.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
    fileName = localPath + "/new.bmp";
   }
  }
  private void UpdateFile()
  {
   using (FileStream fs = new FileStream (localPath + "/My.ini", FileMode.OpenOrCreate))
   {
     
    StreamWriter m_streamWriter = new StreamWriter(fs);
    m_streamWriter.Flush();
    m_streamWriter.BaseStream.Seek(0,SeekOrigin.Begin);
    m_streamWriter.WriteLine(picIndex.ToString());
    m_streamWriter.Flush();
    m_streamWriter.Close();

   }
  }
  private void button2_Click(object sender, System.EventArgs e)
  {
   //change the initial directory if required.
   openFileDialog1.InitialDirectory = @"c:/";
   if (openFileDialog1.ShowDialog() == DialogResult.OK)
   {
    fileName = openFileDialog1.FileName;
    mycheckedListBox.Items.Add (fileName,CheckState.Checked);
    UpdateFile();   
    //    using (FileStream fs = new FileStream ("My.ini", FileMode.OpenOrCreate))
    //    {
    //     
    //     StreamWriter m_streamWriter = new StreamWriter(fs);
    //     m_streamWriter.Flush();
    //     m_streamWriter.BaseStream.Seek(0,SeekOrigin.Begin);
    //     //m_streamWriter.WriteLine(DateTime.Now.ToString() + ":");
    //     m_streamWriter.WriteLine(picIndex.ToString());
    //
    //     for (int i=0; i< mycheckedListBox.CheckedItems.Count;i++)
    //     {
    //      //listBox1.Items.Add(mycheckedListBox.CheckedItems[i]);
    //      m_streamWriter.WriteLine(mycheckedListBox.Items[i].ToString());
    //     }
    //     m_streamWriter.Flush();
    //     m_streamWriter.Close();
    //    }

   }

  }

  private void Form1_Load(object sender, System.EventArgs e)
  {
   if (File.Exists("My.ini"))
   {

    using (FileStream fs = new FileStream ("My.ini", FileMode.OpenOrCreate))
    {
     StreamReader m_streamReader = new StreamReader(fs);
     m_streamReader.BaseStream.Seek(0,SeekOrigin.Begin);
     string strLine = m_streamReader.ReadLine();
     picIndex = Int32.Parse(strLine);
     
     m_streamReader.Close();
        
    }
   }
    
   mycheckedListBox.Items.Clear();
   fSetList("*.bmp");
   fSetList("*.jpg");
   fSetList("*.jpeg");
   
 
   mycheckedListBox.SelectedIndex = picIndex;
   fileName = mycheckedListBox.Items[picIndex].ToString();
  
  }
  private void fSetList(string strExt)
  {
   string[] dirs = Directory.GetFiles(localPath , strExt );
   
   foreach (string dir in dirs) 
   {
    if (dir.Equals (localPath + "/new.bmp") == false)
    {
     mycheckedListBox.Items.Add (dir ,CheckState.Checked);
    }
   }
   
  }
  
  public bool m_bcheckChangePossible = true;
  private void mycheckedListBox_SelectedIndexChanged(object sender, System.EventArgs e)
  {
   if (m_bcheckChangePossible)
    fileName = mycheckedListBox.SelectedItem.ToString();
  }
  
  private void btnDel_Click(object sender, System.EventArgs e)
  {
   m_bcheckChangePossible = false;
   int Index = mycheckedListBox.SelectedIndex;
   mycheckedListBox.Items.RemoveAt(Index);
   fileName = mycheckedListBox.SelectedIndex.ToString();
   m_bcheckChangePossible = true;
  }

  private void timer1_Tick(object sender, System.EventArgs e)
  {
   GlobalTimer = GlobalTimer + 1;
   if (GlobalTimer  > timerInterval)
   {
//    int nResult ;
//    if (fileName.EndsWith (".jpg"))
//    {
//     Bitmap theImage = new Bitmap(fileName);
//     theImage.Save (localPath + "/new.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
//     fileName = localPath + "/new.bmp";
//    }
//    //if (File.Exists(textBox1.Text))
//    //{
//    nResult =  WinAPI.SystemParametersInfo(SPI_SETDESKWALLPAPER,1,fileName,SPIF_SENDCHANGE);
//    picIndex  = (picIndex + 1 ) % mycheckedListBox.CheckedItems.Count;
//    mycheckedListBox.SelectedIndex = picIndex;
    
    fSetBMP();
    int nResult =  WinAPI.SystemParametersInfo(SPI_SETDESKWALLPAPER,1,fileName,SPIF_SENDCHANGE);
   
    UpdateFile();
    
    GlobalTimer = 0;
   }
  }

  private void cmbTime_SelectedIndexChanged(object sender, System.EventArgs e)
  {
   
   timerInterval = myArray [cmbTime.SelectedIndex] * 12;
   

  }


  

 }

 public class WinAPI
 {
  [DllImport("user32.dll", CharSet=CharSet.Auto)]
  public static  extern int SystemParametersInfo (int uAction , int uParam , string lpvParam , int fuWinIni) ;
  public const int SPI_SETDESKWALLPAPER = 20;
  public const int SPIF_SENDCHANGE = 0x2;

 }  


}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值