您的位置:首页 > 编程语言 > C#

[C#] win7 改变主题

2011-12-01 11:49 134 查看
一 : 解析问题
1. Windows 7 主题在:%windir%\Resources\Themes :



2: 我们通过shell 命令 (这个是msdn中提到的)

rundll32.exe %SystemRoot%\system32\shell32.dll,Control_RunDLL %SystemRoot%\system32\desk.cpl desk,@Themes /Action:OpenTheme /file:" %SystemRoot%\Resources\Themes\architecture.theme"

3: 写代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Threading;
using System.Diagnostics;

namespace win7改变主题
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
string sPath = Environment.GetEnvironmentVariable("windir");//获取系统变量 windir(windows)
DirectoryInfo directoryInfo = new DirectoryInfo(sPath + @"\Resources\Themes\");
foreach (FileInfo i in directoryInfo.GetFiles("*.theme"))
{
comboBox1.Items.Add(i.FullName);
}
}

private void button1_Click(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == -1)
{
return;
}
string sFile = comboBox1.SelectedItem.ToString();
string sCmd = string.Format(@"
rundll32.exe %SystemRoot%\system32\shell32.dll,Control_RunDLL %SystemRoot%\system32\desk.cpl desk,@Themes /Action:OpenTheme /file:""{0}""", sFile); //cmd命令
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;
cmd.Start();
cmd.StandardInput.WriteLine(sCmd);
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.Close();
cmd.Dispose();
}
}
}


二 执行程序 如图:



三 : 程序源代码 下载:

http://download.csdn.net/detail/qq283868910/3866000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: