---恢复内容开始---

在使用c# 的过程中,忽然想到开发 一个可以随机换桌面壁纸的工具,当然,这样的工具已经有很多了,但是使用别人的尽管很完美但是不如使用自己的有意思。

界面如下:

很简单的功能, 点击上传图片,然后随机选中图片设置为桌面壁纸。
设置桌面壁纸的代码很简单,不过需要外部引用一个 user32.dll

 [DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]public static extern int SystemParametersInfo(int uAction,int uParam,string lpvParam,int fuWinIni);/// <summary>/// 設置圖片桌面/// </summary>/// <param name="randomFileName"></param>public static void UpdateWindowsDesk(int randomFileName){          var PicName = AppDomain.CurrentDomain.BaseDirectory + @"UpLoadImages\"+ randomFileName+".bmp";SystemParametersInfo(20, 0, PicName, 0x2);}

在此前提下,获取所需图片路径设置即可。由于是本地的windowsForm程序,图片文件夹直接就建在Bin文件夹下了。

上传图片:由于设置桌面壁纸图片格式需要使用bmp,所以上传后的图片需要统一改为bmp格式。

代码如下

 /// <summary>/// 上傳文件/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void UploadImage_Click(object sender, EventArgs e){//初始化openFileDialogOpenFileDialog ofd = new OpenFileDialog();ofd.Title = "请选择要上传的图片";ofd.Filter = "图像文件(*.jpg;*.gif;*.png)|*.jpg;*.gif;*.png";ofd.Multiselect = false;if (ofd.ShowDialog() == DialogResult.OK){string oldFilePath = ofd.FileName;int position = oldFilePath.LastIndexOf("\\");string OldfileName = oldFilePath.Substring(position + 1);string[] splitName = oldFilePath.Split('.');string ext = splitName[splitName.Length - 1];var index = 1;cc: string newName = index + ".bmp";// + ext;//判断根目录下是否含有指定文件夹,若没有则创建一个新的string path = AppDomain.CurrentDomain.BaseDirectory + "/UpLoadImages";DirectoryInfo di = new DirectoryInfo(path);if (!di.Exists){di.Create();}string newFilePath = AppDomain.CurrentDomain.BaseDirectory + "/UpLoadImages/" + newName;if (File.Exists(newFilePath)){index = index + 1;goto cc;}File.Copy(oldFilePath, newFilePath, false);Image img = Image.FromFile(newFilePath);//tureBox1.Image = img;MessageBox.Show("上传成功", "Tip");}}

在上传图片的时候命名上我取了个巧,使用数字直接命名,使用了goto语法来排除重名问题,

然后只要随机取文件名就可以设置随机壁纸了。

随机取文件名首先要判断当前文件夹下文件的数量,代码如下

 /// <summary>/// 讀取文件夾下文件數量/// </summary>/// <param name="dirInfo"></param>/// <returns></returns>public static int GetFilesCount(DirectoryInfo dirInfo){int totalFile = 0;//totalFile += dirInfo.GetFiles().Length;//获取全部文件totalFile += dirInfo.GetFiles("*.bmp").Length;//获取某种格式foreach (System.IO.DirectoryInfo subdir in dirInfo.GetDirectories()){totalFile += GetFilesCount(subdir);}return totalFile;}

由于此文件夹下只有一种文件格式,所以直接判断一种格式数量即可,其他文件不影响此类文件。

由此,只要传入随机的文件名就可以设置随机壁纸了。

此项目非常简单,但是对于一个入门型程序员来说也可以算是值得一看的小项目了。

项目链接:https://pan.baidu.com/s/1og9pyLAP5ZExTkVP1eupMw

提取密码:g17l

---恢复内容结束---

转载于:https://www.cnblogs.com/widows/p/10901039.html

随机换桌面壁纸工具开发相关推荐

  1. 计算机桌面怎么换服,台式电脑怎么换桌面壁纸

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 台式电脑换桌面壁纸的具体步骤: 1.鼠标右键点击桌面,选择桌面分辨率. 2.记下屏幕分辨率. 3.鼠标右键点击图片,选择编辑. 4 ...

  2. 怎么换计算机的桌面背景6,台式电脑怎么换桌面壁纸

    大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 台式电脑换桌面壁纸的具体步骤: 1.鼠标右键点击桌面,选择桌面分辨率. 2.记下屏幕分辨率. 3.鼠标右键点击图片,选择编辑. 4 ...

  3. python定时换桌面壁纸

    使用Python从本地文件夹中直接调取图片,自动定时更换桌面壁纸,于是试了一试,效果贼棒! import random import ctypes import time import os path ...

  4. 小玩意--用必应每日图片换桌面壁纸(Python)

    必应 的每日图片还是不错的,换作自己的桌面壁纸挺有意思的. 这种简单的小程序实现网络上还是很多的,但还是想亲手写一写. 把代码分享一下 # 获取必应每日图片 import os import path ...

  5. 利用Python实现自动换桌面壁纸

    受够了360壁纸等壁纸软件,想到可以使用Python从本地文件夹中直接调取图片,自动定时更换桌面壁纸,于是试了一试,效果贼棒! import random import ctypes import t ...

  6. java -- jre 精简,为桌面小工具开发瘦身

    开发桌面应用程序经常需要打包运行.这时就要jre运行环境,jre包比较大180M左右.好多没用的文件,jar包就要去掉. 1,第一步,先用工具.GreenJVMMake.jar 对jre包里的rt.j ...

  7. 【PC桌面自动化测试工具开发笔记】(一)基于pywinauto的元素定位工具

    (一)基于pywinauto的元素定位工具 前言 后台截图的实现 win32桌面绘图 源码 结果展示 前言 使用pywinauto库实现PC桌面应用程序自动化查找元素时遇到以下问题: 使用pywina ...

  8. python实现自动换桌面壁纸恶搞程序【带源码】--------- 1. 效果和源码

    效果 本案例程序运行后无弹窗,每5秒自动更换一次壁纸,手动换了也不管用,达到整人效果O(∩_∩)O,效果如图 实现 本案例使用python编写,调用win底层相关的api,最终使用pyinstalle ...

  9. 计算机桌面壁纸怎么来回换,我的电脑为什么在总是自动换桌面壁纸???

    设置背景:[在桌面上点击鼠标右键]-[在弹出的快捷菜单中选择\属性\]-[出现\显示属性\设置界面]-[选择\背景\选项卡]-[在\选择图片\文字下的下拉列表框中选择\居中\]-[最后点击\确定\]- ...

最新文章

  1. JAVA编程TXT文件_java开发之读写txt文件操作的实现
  2. Python参考书籍
  3. springdatajpa命名规则_简单了解下spring data jpa
  4. c - 字符串的拼接.
  5. Java Web整合开发(14) -- Struts 1.x 概述
  6. 【正一专栏】如果不是生活所迫,谁会愿意苟且
  7. Git之cherry-pick命令
  8. 乐视android版本点四下,EUI5.9+Android7.0刷机包
  9. 2017一季度JAVA面试题锦集
  10. 正确获取Java事件通知
  11. [渝粤教育] 三峡大学 电力电子技术(Ⅱ) 参考 资料
  12. 软件工程 - 设计模式学习之工厂方法模式Factory Method
  13. servlet/filter/listener/interceptor区别与联系(转)
  14. LateX在windows中运用MiKTeX
  15. java怎么改变数组的名,java – Spring HATEOASHAL:在_embedded中更改数组名称
  16. java servlet的包下载_javax.servlet jar包下载_javax.servlet jar包官方下载-太平洋下载中心...
  17. linux 系统服务里没有系统服务,windows怎样添加系统服务|windows 添加不了系统服务怎么办|windows 添加系统服务方法-系统城...
  18. EasyPay移动支付框架
  19. SAP BW常用后台事务码
  20. 播放超1200w,仅21w粉的B站UP主靠带货也能引爆B站

热门文章

  1. iphone开发教程(1) iOS大纲
  2. 微服务架构开发实战:API网关意义和常见API网关的实现方式
  3. 我的英语学习经验与教训
  4. 音视频实战(海康视频预览,通过ffmpeg转码)
  5. python排列组合结果输出_排列组合总结:将结果进行输出的实现方法
  6. repost 分布式学习
  7. Webpack打包之坑 _ webpackChunkName【魔法注释】
  8. python公众号留言功能详情_Python实现的微信公众号群发图片与文本消息功能实例详解...
  9. python学习:几种常用的加密操作
  10. 【解决方法】安装ubuntu后,ubuntu与Windows7双系统,只能进入ubuntu不能进入win7