C# 替换桌面背景图片
做这个纯属和郁闷,win7家庭普通版的电脑背景图片居然不能动态切换。去哦一气之下就做了这个
public FrmpictureBox()
{
InitializeComponent();
downbingimage();
}
/// <summary>
/// 返回指定目录下所有文件信息
/// </summary>
/// <param name="strDirectory">目录字符串</param>
/// <returns></returns>
public List<FileInfo> GetAllFilesInDirectory(string strDirectory)
{
List<FileInfo> listFiles = new List<FileInfo>(); //保存所有的文件信息
DirectoryInfo directory = new DirectoryInfo(strDirectory);
DirectoryInfo[] directoryArray = directory.GetDirectories();
FileInfo[] fileInfoArray = directory.GetFiles();
if (fileInfoArray.Length > 0)
{
//string extension = System.IO.Path.GetExtension(fileInfoArray.ToString());
//if (extension == ".jpg")
//{
listFiles.AddRange(fileInfoArray);
//}
}
foreach (DirectoryInfo _directoryInfo in directoryArray)
{
DirectoryInfo directoryA = new DirectoryInfo(_directoryInfo.FullName);
DirectoryInfo[] directoryArrayA = directoryA.GetDirectories();
FileInfo[] fileInfoArrayA = directoryA.GetFiles();
if (fileInfoArrayA.Length > 0)
{
listFiles.AddRange(fileInfoArrayA);
}
GetAllFilesInDirectory(_directoryInfo.FullName);//递归遍历
}
return listFiles;
}
/// <summary>
/// 根据日期获取路径
/// </summary>
private void downbingimage()
{
string week = DateTime.Now.DayOfWeek.ToString();
int imgpath=0;
//Monday——星期一
//星期二Tuesday
//星期三Wednesday
//星期四Thursday
//星期五Friday
//星期六Saturday
//星期日Sunday
switch(week)
{
case "Monday":
imgpath=1;
break;
case "Tuesday":
imgpath = 2;
break;
case "Wednesday":
imgpath = 3;
break;
case "Thursday":
imgpath = 4;
break;
case "Friday":
imgpath = 5;
break;
case "Saturday":
imgpath = 6;
break;
case "Sunday":
imgpath = 7;
break;
}
string locurl = "";
locurl = Path.Combine(Directory.GetCurrentDirectory(), "im" + imgpath + ".jpg");
pictureBox1.Image = Image.FromFile(locurl);
setbackground(locurl);
}
/// <summary>
/// 设置电脑背景图片
/// </summary>
/// <param name="strSavePath"></param>
private void setbackground(string strSavePath)
{
//设置墙纸显示方式
RegistryKey myRegKey = Registry.CurrentUser.OpenSubKey(@"Control Panel/desktop", true);
myRegKey.SetValue("TileWallpaper", "0");//0 居中 1 平铺 默认
myRegKey.SetValue("WallpaperStyle", "0");//2 拉伸
this.label1.Text = "当前模式:居中";
this.label2.Text = "更改配置文件config.xml可在下次启动时改变模式";
//关闭该项,并将改动保存到磁盘
myRegKey.Close();
//设置墙纸
string strPathBmp = Directory.GetCurrentDirectory() + "im1.jpg";
System.Drawing.Bitmap bm = new System.Drawing.Bitmap(strSavePath);
bm.Save(strPathBmp, System.Drawing.Imaging.ImageFormat.Bmp);//把jpg转成bmp
SystemParametersInfo(20, 1, strPathBmp, 1);//SPI_SETDESKWALLPAPER
}
/// <summary>
/// 调用电脑底层的接口
/// </summary>
/// <param name="uAction"></param>
/// <param name="uParam"></param>
/// <param name="lpvParam">图片的路径</param>
/// <param name="fuWinIni"></param>
/// <returns></returns>
/// uAction Long,指定要设置的参数。参考uAction常数表
///uParam Long,参考uAction常数表
///
///lpvParam Any,按引用调用的Integer、Long和数据结构。
///
///fuWinIni 这个参数规定了在设置系统参数的时候,是否应更新用户设置参数
///
///下面是部分uAction参数,和使用它们的方法:
///
///参数 意义和使用方法
///
///6 设置视窗的大小,SystemParametersInfo(6, 放大缩小值, P, 0),lpvParam为long型
///
///17 开关屏保程序,SystemParametersInfo(17, False, P, 1),uParam为布尔型
///
///13,24 改变桌面图标水平和垂直间距,uParam为间距值(像素),lpvParam为long型
///
///15 设置屏保等待时间,SystemParametersInfo(15, 秒数, P, 1),lpvParam为long型
///
///20 设置桌面背景墙纸,SystemParametersInfo(20, True, 图片路径, 1)
///
///93 开关鼠标轨迹,SystemParametersInfo(93, 数值, P, 1),uParam为False则关闭
///
///97 开关Ctrl+Alt+Del窗口,SystemParametersInfo(97, False, A, 0),uParam为布尔型
[DllImport("user32.dll", EntryPoint = "SystemParametersInfoA")]
static extern Int32 SystemParametersInfo(Int32 uAction, Int32 uParam, string lpvParam, Int32 fuWinIni);//lpvParam要设置成string
/// <summary>
///时间控制
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Pricttimer_Tick(object sender, EventArgs e)
{
downbingimage();
}
C# 替换桌面背景图片相关推荐
- Fedora15上实现桌面背景图片渐变
2019独角兽企业重金招聘Python工程师标准>>> 桌面背景图片渐变,在Ubuntu中很容易实现.Ubuntu默认就自带了几款渐变壁纸.但换到Fedora后,貌似没发现有自带的渐 ...
- 修改计算机桌面壁纸影响计算机考试吗,若何修改调换计算机桌面背景图片
<若何修改调换计算机桌面背景图片>由会员分享,可在线阅读,更多相关<若何修改调换计算机桌面背景图片(3页珍藏版)>请在技术文库上搜索. 1.韧耐距荤丢郧瞄宵汤隧匣龋侥撤东取滤傣 ...
- win7自定义随机更换显示桌面背景图片
在网上看到了好几张漂亮的图片,都想作为桌面背景图片,随机更换,于是搜索方法,因为win7自带的主题有的就是随机更换背景的,所以想着自己是不是可以新建一个主题,也能实现那个效果. 果然,还是微软强悍- ...
- C#实现动态桌面背景图片切换
问题描述:凝视桌面背景,突感如果桌面背景是变化的像win7一样,该多有意思啊.闹钟瞬间产生一个念头,用C#写一个动态切换桌面背景的图片.如何实现这个想法了,我思考了一会儿,想到了如下的一些需要解决的问 ...
- SAP修改登录桌面背景图片
SAPgui 提供了丰富的界面风格设定功能,跟 Windows 桌面主题一样,可以任意设定自己喜欢的颜色风格.不过美中不足,它的背景图片却比较单调,天天看惯了正式系统的蔚蓝水池或者 IDES 系统的小 ...
- 设置smartphone桌面背景图片
刚作smartphone程序的时候有个功能就是设置一张图片为sp桌面背景,这个功能很长时间都没有完全实现,设置桌面有时成功,有时候则没有反应,几经辗转,最近还是ningxu告诉我是一个参数错了,才有了 ...
- 计算机桌面背景图片怎么改 win7,怎么换开机关机的背景图_w7系统修改开关机壁纸的方法...
最近有朋友问小编怎么换开机关机的背景图,对于这个问题,相信很多朋友都还不太清楚,有的朋友觉得windows7系统的开机和关机背景图片不好看,想要更换win7系统的开关机壁纸,但是却不知道修改的方法,别 ...
- android 背景图片自适应屏幕大小,android 设置桌面背景图片适应屏幕大小
今天做demo,设置桌面每天自动更新背景,但是桌面的背景都是被系统裁剪过的图片,上网百度了一下,有个过时的方法,改进后果然有用了! Bitmap bmp=BitmapFactory.decodeRes ...
- C#实现动态桌面背景图片切换(续)
问题描述:昨天搞了一个自动切换桌面的小程序,用着不太方便.因为我每次添加新图片都是手动修改XML文件和重启服务,于是我搞了一个配置程序如下: 上面展示的功能,基本上实现了程序所需要的功能.其中涉及的知 ...
最新文章
- FastDFS图片服务器
- IBM谢东:2nm芯片可让手机4天一充电,量子计算机大规模应用的未来不会太远|MEET2022...
- Shell : 基本语法
- 深入理解Mysql - 索引原理详解
- ES6 数组高频使用方法
- [BZOJ 5074]小B的数字
- 脚本计算文件MD5 SHA1 SHA256值(Windwos及Linux)
- java分页的方法_java实现的分页方法(上一页下一页)
- 量化指标公式源码_量化庄建仓(副图指标源码)下载 通达信源码
- 算法设计与分析(期末复习重点)更新中
- MATLAB-马尔可夫链(马氏链)模型
- 识别PDF文字,教你两招
- 基于OpenCV3.0的车牌识别系统设计(二)--车牌提取
- HTML5期末大作业:旅游网站设计——中国风的旅游网站(9页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码...
- Linux 运维是做什么的
- SCI检索与EI检索
- web单页面应用与多页面应用区别
- [1168]OSS ossutil64安装及使用
- 虚拟机无法建立与服务器的连接,无法通过 Vmconnect 连接到虚拟机 - Windows Server | Microsoft Docs...
- Flask-SocketIO的使用