C#实现动态桌面背景图片切换(续)
问题描述:昨天搞了一个自动切换桌面的小程序,用着不太方便。因为我每次添加新图片都是手动修改XML文件和重启服务,于是我搞了一个配置程序如下:
上面展示的功能,基本上实现了程序所需要的功能。其中涉及的知识点有三个:
(1):执行命令行语句,并且返回结果,这是我以前不知道的,以前我知道执行命令行命令,但是不知道如果返回结果,代码如下:
/// <summary>
/// 执行DOS命令,返回DOS命令的输出
/// </summary>
/// <param name="dosCommand">dos命令</param>
/// <param name="milliseconds">等待命令执行的时间(单位:毫秒),如果设定为0,则无限等待</param>
/// <returns>返回输出,如果发生异常,返回空字符串</returns>
public static string Execute(string dosCommand, int milliseconds)
{
string output = "";
if (dosCommand != null && dosCommand != "")
{
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "/C " + dosCommand;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardInput = false;
startInfo.RedirectStandardOutput = true;
startInfo.CreateNoWindow = true;
process.StartInfo = startInfo;
try
{
if (process.Start())
{
if (milliseconds == 0)
process.WaitForExit();
else
process.WaitForExit(milliseconds);
output = process.StandardOutput.ReadToEnd();
}
}
catch
{
}
finally
{
if (process != null)
process.Close();
}
}
return output;
}
#endregion
(2):XML写入和读取,以前搞过,好久不用,生疏了需要。现在代码记录如下,方便以后查找:
private void btnSave_Click(object sender, EventArgs e)
{
if (this.lstFilePath.Items.Count > 0)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(XML_PATH);
xmlDoc.SelectSingleNode("paths").RemoveAll();
XmlNode root = xmlDoc.SelectSingleNode("paths");
XmlElement xmlEle = (XmlElement)xmlDoc.SelectSingleNode("paths");
xmlEle.SetAttribute("time", this.txtTime.Text);
for (int i = 0; i < this.lstFilePath.Items.Count; i++)
{
XmlElement xmle = xmlDoc.CreateElement("path");
xmle.InnerText = this.lstFilePath.Items[i].ToString();
root.AppendChild(xmle);
}
xmlDoc.Save(XML_PATH);
MessageBox.Show("保存成功!请重新启动服务(先关闭,在启动)才能生效");
}
}
#endregion
(3):安装服务,并且如何判断服务时候安装成功。如下:
private void btnInstall_Click(object sender, EventArgs e)
{
Directory.CreateDirectory(App_Path + "DynamicDesktop");
File.Copy(Environment.CurrentDirectory.ToString() + "/DynamicDesktop/BackGround.exe", App_Path + "DynamicDesktop\\BackGround.exe", true);
File.Copy(Environment.CurrentDirectory.ToString() + "/DynamicDesktop/BackGround.exe.manifest", App_Path + "DynamicDesktop\\BackGround.exe.manifest", true);
File.Copy(Environment.CurrentDirectory.ToString() + "/DynamicDesktop/蝴蝶.bmp", App_Path + "DynamicDesktop\\蝴蝶.bmp", true);
File.Copy(Environment.CurrentDirectory.ToString() + "/DynamicDesktop/desktop.xml", Environment.GetFolderPath(Environment.SpecialFolder.System) + "\\desktop.xml", true);
if (!File.Exists(txtSDK.Text.Trim() + "\\installutil.exe"))
{
MessageBox.Show("请选择正确 v2.0 SDK 路径!");
return;
}
string result = string.Empty;
result = Execute(txtSDK.Text + "\\installutil.exe " + App_Path + "DynamicDesktop\\BackGround.exe",0);
if (result.Contains("已完成事务处理安装"))
{
MessageBox.Show("安装成功!");
InitShowDesktop();
}
else
{
MessageBox.Show(result);
}
}
#endregion
转载于:https://www.cnblogs.com/BlueWoods/archive/2010/03/11/1683584.html
C#实现动态桌面背景图片切换(续)相关推荐
- C#实现动态桌面背景图片切换
问题描述:凝视桌面背景,突感如果桌面背景是变化的像win7一样,该多有意思啊.闹钟瞬间产生一个念头,用C#写一个动态切换桌面背景的图片.如何实现这个想法了,我思考了一会儿,想到了如下的一些需要解决的问 ...
- 修改计算机桌面壁纸影响计算机考试吗,若何修改调换计算机桌面背景图片
<若何修改调换计算机桌面背景图片>由会员分享,可在线阅读,更多相关<若何修改调换计算机桌面背景图片(3页珍藏版)>请在技术文库上搜索. 1.韧耐距荤丢郧瞄宵汤隧匣龋侥撤东取滤傣 ...
- jQuery Backstretch动态设置背景图片插件
贴图 知乎:显著提升程序员身心健康和工作效率的装备有哪些? 笔记本: 1.银河舰队 PAVILION 15-bc011TX光暗影精灵2 2.顽石 -FL5900U7500超薄i7(性价比最高) ...
- Fedora15上实现桌面背景图片渐变
2019独角兽企业重金招聘Python工程师标准>>> 桌面背景图片渐变,在Ubuntu中很容易实现.Ubuntu默认就自带了几款渐变壁纸.但换到Fedora后,貌似没发现有自带的渐 ...
- 防仿百度图片背景色php,基于jQuery实现仿百度首页换肤背景图片切换代码_jquery...
不多说了,先给大家展示效果图,本文支持源码下载哦,需要的朋友可以直接下载使用,代码很简单哦- html代码: css代码: *{margin:0;padding:0} a{color:#fff; ma ...
- vue改变html的背景,vue动态改变背景图片demo分享
如下所示: #bag{ width: 200px; height: 500px; margin: 0 auto; background: url(img/piao11.jpg) center no-r ...
- win7自定义随机更换显示桌面背景图片
在网上看到了好几张漂亮的图片,都想作为桌面背景图片,随机更换,于是搜索方法,因为win7自带的主题有的就是随机更换背景的,所以想着自己是不是可以新建一个主题,也能实现那个效果. 果然,还是微软强悍- ...
- VUE动态变换背景图片的实现 +背景图片铺满+ 一般路由的配置
一 .动态变换背景图片的实现 代码如下: <template><div class="body" v-loading="loading" :s ...
- 为canvas画布动态设置背景图片
为canvas画布动态设置背景图片 关键是将canvas和img标签放到同一个盒子里,盒子设置相对位置,并且canvas和img需要设置相同的相对位置 <div class="list ...
最新文章
- ThinkPHP导入第三方类库Vendor
- Openstack Nova 源码分析 — RPC 远程调用过程
- Ciruy英雄谭 Chapter 3 杂谈
- STM32 之七 备份域(备份寄存器、备份SRAM)详解及数据丢失问题处理
- unity 背包选中_Unity背包系统实现
- 你最想要的圣诞礼物是什么?
- REVERSE-PRACTICE-BUUCTF-14
- MATLAB元胞自动机报告,元胞自动机概述与MATLAB实现
- 接口测试用例设计思路_基于python语言的接口自动化demo小实战
- postman传递数组参数
- AQS同步队列结构分析
- 机器视觉halcon——距离测量
- 2019中国信息安全自主可控行业政策盘点及网络安全行业分析
- 程序员进阶!阿里P7级别面试经验总结,深度好文
- win10 安全模式开机
- 怎么样用matlab做视频,MATLAB:使用writeVideo制作视频
- clearcase命令指南
- 计算机如何计算指数函数
- 《“人工智能”主题论坛》学习笔记(一)
- 电脑安装双系统(win+Linux)的一些重要步骤总结
热门文章
- python爬取+BI分析5000条内衣数据,发现妹子最爱这款文胸
- 数据意识崛起,从企业应用看BI软件的未来发展
- jsf ajax循环调用,每次JSF ajax回发后执行JavaScript
- php5.5.35安装,如何安装php5
- java魔方游戏代码_java swing实现的魔方小游戏源码附带视频指导运行教程
- android hook底层代码_Java-Hook技术-入门实践(反射、动态代理)-Hook拦截通知(当前App/Context)...
- mysql 函数 数字转字串_mysql中字符串和数字的互转函数
- jQuery 配置和基本语法
- 蓝桥杯 2018年预赛C语言大学B组 C/C++
- 洛谷P1182 数列分段 Section II(二分+贪心)