程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#通過搜狐微博api遠程更換壁紙

C#通過搜狐微博api遠程更換壁紙

編輯:C#入門知識

通過搜狐微博的api,使用http basic 認證,新浪的oauth還要通過浏覽器認證,太麻煩,整個程序分為幾個小部分,不難。

實現以下功能:

1,開機啟動。程序運行有會創建C:gimg文件夾,會將程序自己copy到該文件夾下,以後開機啟動將用該文件夾下的程序。下載的壁紙也在該文件夾下。

2,自動更新壁紙。

3,從搜狐微博獲取圖片鏈接,下載圖片。

4,md5驗證,用於比較當前的壁紙與下載的壁紙是否相同。

5,隱藏窗口,後台運行,不需要窗口滴。

6,圖片格式轉換,xp系統下調用SystemParametersInfo更改壁紙,只支持bmp格式的。這裡注意,上傳的圖片也要是bmp格式的。

代碼中用到了搜狐微博提供的封裝好的C#.net類,使用很簡單。該類庫下載地址:

http://www.iiidown.com/source_link.php?type=1&key=71510353&url=http%3A%2F%2Fdlwt.csdn.net%2Ffd.php%3Fi%3D751826827284012%26s%3D025045b263981a9e346d83067b6b9d3c

下面貼上代碼:

using System;using System.Collections.Generic;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Runtime.InteropServices;using System.Net.Sockets;using System.IO;using System.Threading;using System.Net; using System.Drawing.Imaging;using web.ApiService; //搜狐api類庫。namespace client_souhu{    public partial class main : Form    {        [DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]        public static extern int SystemParametersInfo1(           int uAction,           int uParam,           string lpvParam,           int fuWinIni           );        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]        static extern bool SystemParametersInfo(uint uAction, uint uParam, StringBuilder lpvParam, uint init);        const uint SPI_GETDESKWALLPAPER = 0x0073;        string localPath = @"c:gimg";    //創建文件夾的路徑。        string localFilename = "1.bmp";     //下載下來圖片的文件名。        string mainName = "wallpaper.exe";  //主程序的名字。        string lastThemesPaperMd5 = "";  //保存最近一次圖片的md5。這裡實現有問題,可以不用管先。        string lastBgimgPaperMd5 = "";    //最近上一次下載圖片的md5.        string tmpFileName="1.jpg";        bool downloadingImg = false;    //該值為true時表示正在下載圖片,暫停切換壁紙。        string weiboCreateTime;         //微博的創建時間,用於判斷圖片微博是否更新,從而判斷是否要下載圖片。        //搜狐微博賬號信息。        //在微博上傳圖片時,微博的內容為imgBz內容,程序根據這個標志,下載圖片。對於xp用戶,上傳的圖片必須為.bmp格式的。        //只要在最近20條微博中,有帶有imgBz標志的圖片微博,就可以更換壁紙        string username = "你的微博賬號";        string passwd = "你的微博密碼";        string imgBz = "wp_public"; //不同的人用不同的標志,下載不同的圖片,該標志自定義        public main()        {            InitializeComponent();        }        private void Form1_Load(object sender, EventArgs e)        {            updateSelf();            autoRun();            //單獨線程。            Thread updateImgThread = new Thread(new ThreadStart(updateImg));            updateImgThread.Start();            Thread downloadImgThread = new Thread(new ThreadStart(downloadImg));            downloadImgThread.Start();        }        //更新圖片        private void updateImg()        {            Thread.CurrentThread.IsBackground = true;            StringBuilder wallPaperPath = new StringBuilder(200);            SystemParametersInfo(SPI_GETDESKWALLPAPER, 200, wallPaperPath, 0);            while (true)            {                if (File.Exists(localPath + localFilename) && !downloadingImg)                {                    string x = getMD5Hash(wallPaperPath.ToString());                    string y = getMD5Hash(localPath + localFilename);                    if (x != lastThemesPaperMd5 || y != lastBgimgPaperMd5)                    {                        SystemParametersInfo1(20, 0, localPath + localFilename, 1);                        lastThemesPaperMd5 = x;                        lastBgimgPaperMd5 =y;                        //MessageBox.Show("change Paper:Themes");                    }                }                Thread.Sleep(5000);            }        }        //從微博下載圖片。        private void downloadImg()        {            Thread.CurrentThread.IsBackground = true;            WebClient wc = new WebClient();            while (true)      &nbs

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved