在Windows Server 2012下玩扫雷

由于受到了DreamSpark学生认证,我用的是Windows Server 2012的正版系统,但有一个问题就是,这个系统不能玩扫雷。

经过探索,在MSDN论坛上找到解决办法,原文如下:
http://social.technet.microsoft.com/Forums/zh-CN/winserver8gen/thread/b64cdc31-7e2d-40b8-a45d-45a8203c5fde

方法是,在Windows 8下找到System32和SysWOW64下的所有xaudio*.dll和xinput*.dll,然后复制到Windows Server 2012对应的文件夹下,过程很简单,只是可能需要劳烦一下室友。为图个简便,我就顺手将这段代码用C#实现了:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace CSConsole
{
    class Program
    {
        static string[] sourceFolders = 
        {
            Environment.GetFolderPath(Environment.SpecialFolder.System), 
            Environment.GetFolderPath(Environment.SpecialFolder.SystemX86)
        };

        static string baseFolder = "扫雷必须文件";

        static string[] destFolders = 
        {
            Path.Combine(baseFolder, "System32"), 
            Path.Combine(baseFolder, "SysWOW64"),
        };

        static void Main(string[] args)
        {
            if (!Directory.Exists(baseFolder))
                Directory.CreateDirectory(baseFolder);
            for (int folderIndex = 0; folderIndex < sourceFolders.Length; ++folderIndex)
            {
                var source = sourceFolders[folderIndex];
                var dest = destFolders[folderIndex];
                var files = new List<string>();
                files.AddRange(Directory.GetFiles(source, "xaudio*.dll"));
                files.AddRange(Directory.GetFiles(source, "xinput*.dll"));
                if (!Directory.Exists(dest))
                    Directory.CreateDirectory(dest);
                foreach (var file in files)
                {
                    File.Copy(file, Path.Combine(dest, Path.GetFileName(file)));
                }
            }
        }
    }
}
View Code

编译后,放在Windows 8系统下任意可读写位置即可运行,运行完毕会在exe所在的文件夹下生成一个“扫雷必备文件夹”,然后将里面的System32和SysWOW64内容复制到Windows Server 2012中对应位置即可。

另外,经过探索,我发现如果只要玩扫雷,只需要拷SysWOW64下的内容即可。SysWOW64是32位的,可能是微软为顾及兼容性,未为64位提供专门的扫雷。

最后,没有做不到,只有想不到!上三张图:
9x9扫雷纪录,4s:

16x16扫雷纪录,36秒:

30x16扫雷纪录,133秒:

posted @ 2013-05-24 16:43  .NET骚操作  阅读(1763)  评论(4编辑  收藏  举报