zoukankan      html  css  js  c++  java
  • 在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秒:

  • 相关阅读:
    JS 中深拷贝的几种实现方法
    实现一个函数clone,可以对JS中的5种数据类型(Number、String、Object、Array、Boolean)进行值复制
    etTimeout来实现setInterval
    原型链
    Vue.js面试题整理
    JS中的闭包
    JavaScript的数据类型
    MyBatis-Plus使用(1)-概述+代码生成器
    JDK8的Optional用法
    动态修改HttpServletRequest的Post请求参数
  • 原文地址:https://www.cnblogs.com/sdflysha/p/3097230.html
Copyright © 2011-2022 走看看