问题描述:昨天搞了一个自动切换桌面的小程序,用着不太方便。因为我每次添加新图片都是手动修改XML文件和重启服务,于是我搞了一个配置程序如下:

  上面展示的功能,基本上实现了程序所需要的功能。其中涉及的知识点有三个:

  (1):执行命令行语句,并且返回结果,这是我以前不知道的,以前我知道执行命令行命令,但是不知道如果返回结果,代码如下:

代码

        #region 执行DOS命令,返回DOS命令的输出
        /// <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写入和读取,以前搞过,好久不用,生疏了需要。现在代码记录如下,方便以后查找:

代码

        #region btnSave_Click
        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):安装服务,并且如何判断服务时候安装成功。如下:

代码

        #region btnInstall_Click
        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#实现动态桌面背景图片切换(续)相关推荐

  1. C#实现动态桌面背景图片切换

    问题描述:凝视桌面背景,突感如果桌面背景是变化的像win7一样,该多有意思啊.闹钟瞬间产生一个念头,用C#写一个动态切换桌面背景的图片.如何实现这个想法了,我思考了一会儿,想到了如下的一些需要解决的问 ...

  2. 修改计算机桌面壁纸影响计算机考试吗,若何修改调换计算机桌面背景图片

    <若何修改调换计算机桌面背景图片>由会员分享,可在线阅读,更多相关<若何修改调换计算机桌面背景图片(3页珍藏版)>请在技术文库上搜索. 1.韧耐距荤丢郧瞄宵汤隧匣龋侥撤东取滤傣 ...

  3. jQuery Backstretch动态设置背景图片插件

    贴图  知乎:显著提升程序员身心健康和工作效率的装备有哪些? 笔记本:  1.银河舰队 PAVILION 15-bc011TX光暗影精灵2  2.顽石 -FL5900U7500超薄i7(性价比最高) ...

  4. Fedora15上实现桌面背景图片渐变

    2019独角兽企业重金招聘Python工程师标准>>> 桌面背景图片渐变,在Ubuntu中很容易实现.Ubuntu默认就自带了几款渐变壁纸.但换到Fedora后,貌似没发现有自带的渐 ...

  5. 防仿百度图片背景色php,基于jQuery实现仿百度首页换肤背景图片切换代码_jquery...

    不多说了,先给大家展示效果图,本文支持源码下载哦,需要的朋友可以直接下载使用,代码很简单哦- html代码: css代码: *{margin:0;padding:0} a{color:#fff; ma ...

  6. vue改变html的背景,vue动态改变背景图片demo分享

    如下所示: #bag{ width: 200px; height: 500px; margin: 0 auto; background: url(img/piao11.jpg) center no-r ...

  7. win7自定义随机更换显示桌面背景图片

    在网上看到了好几张漂亮的图片,都想作为桌面背景图片,随机更换,于是搜索方法,因为win7自带的主题有的就是随机更换背景的,所以想着自己是不是可以新建一个主题,也能实现那个效果. 果然,还是微软强悍- ...

  8. VUE动态变换背景图片的实现 +背景图片铺满+ 一般路由的配置

    一 .动态变换背景图片的实现 代码如下: <template><div class="body" v-loading="loading" :s ...

  9. 为canvas画布动态设置背景图片

    为canvas画布动态设置背景图片 关键是将canvas和img标签放到同一个盒子里,盒子设置相对位置,并且canvas和img需要设置相同的相对位置 <div class="list ...

最新文章

  1. ThinkPHP导入第三方类库Vendor
  2. Openstack Nova 源码分析 — RPC 远程调用过程
  3. Ciruy英雄谭 Chapter 3 杂谈
  4. STM32 之七 备份域(备份寄存器、备份SRAM)详解及数据丢失问题处理
  5. unity 背包选中_Unity背包系统实现
  6. 你最想要的圣诞礼物是什么?
  7. REVERSE-PRACTICE-BUUCTF-14
  8. MATLAB元胞自动机报告,元胞自动机概述与MATLAB实现
  9. 接口测试用例设计思路_基于python语言的接口自动化demo小实战
  10. postman传递数组参数
  11. AQS同步队列结构分析
  12. 机器视觉halcon——距离测量
  13. 2019中国信息安全自主可控行业政策盘点及网络安全行业分析
  14. 程序员进阶!阿里P7级别面试经验总结,深度好文
  15. win10 安全模式开机
  16. 怎么样用matlab做视频,MATLAB:使用writeVideo制作视频
  17. clearcase命令指南
  18. 计算机如何计算指数函数
  19. 《“人工智能”主题论坛》学习笔记(一)
  20. 电脑安装双系统(win+Linux)的一些重要步骤总结

热门文章

  1. python爬取+BI分析5000条内衣数据,发现妹子最爱这款文胸
  2. 数据意识崛起,从企业应用看BI软件的未来发展
  3. jsf ajax循环调用,每次JSF ajax回发后执行JavaScript
  4. php5.5.35安装,如何安装php5
  5. java魔方游戏代码_java swing实现的魔方小游戏源码附带视频指导运行教程
  6. android hook底层代码_Java-Hook技术-入门实践(反射、动态代理)-Hook拦截通知(当前App/Context)...
  7. mysql 函数 数字转字串_mysql中字符串和数字的互转函数
  8. jQuery 配置和基本语法
  9. 蓝桥杯 2018年预赛C语言大学B组 C/C++
  10. 洛谷P1182 数列分段 Section II(二分+贪心)