├── .github └── ISSUE_TEMPLATE.md ├── .gitignore ├── Data.xml ├── Files.vcxproj ├── Files.vcxproj.filters ├── HeplerDism.md ├── LICENSE ├── Languages.sln ├── Languages ├── bg.xml ├── cs.xml ├── de.xml ├── en.xml ├── es.xml ├── fr.xml ├── hu.xml ├── it.xml ├── ja.xml ├── ko.xml ├── pl-PL.xml ├── pt.xml ├── ru.xml ├── tr.xml ├── uk.xml ├── zh-Hans.xml └── zh-Hant.xml ├── NCleanerReadMe.md ├── RCMake ├── RCMake.cpp ├── RCMake.vcxproj ├── RCMake.vcxproj.filters ├── ReadMe.txt ├── stdafx.cpp ├── stdafx.h └── targetver.h ├── README.md ├── ThirdParty.md ├── UpdateHistory.md ├── chuyu-analysis ├── client_update.php ├── crash_report.php ├── index.html ├── query.php ├── statistics.html └── statistics.php └── www.chuyu.me ├── 404.html ├── Base.html ├── Document ├── index.html └── log.html ├── amWiki ├── css │ ├── amWiki.css │ ├── lhjs.github-gist.css │ └── markdownbody.github.css ├── images │ ├── icons.svg │ └── menubar_bg.png └── js │ ├── amWiki.docs.js │ ├── amWiki.js │ ├── amWiki.scrollbar.js │ ├── amWiki.search.js │ ├── amWiki.search.worker.js │ ├── amWiki.storage.js │ ├── amWiki.testing.js │ ├── amWiki.tools.js │ ├── flowchart.min.js │ ├── gbk.js │ ├── highlight.min.js │ ├── jquery-compat-3.1.0.min.js │ ├── marked.min.js │ └── raphael-min.js ├── css ├── common-web-v11.css ├── common-web-v11.min.css ├── flexslider.min.css ├── font-awesome.css ├── font-awesome.min.css ├── index-v11.css ├── index-v11.min.css ├── local.css ├── local.min.css ├── templace.css └── template.min.css ├── de.xml ├── en.xml ├── en ├── Document.html ├── images │ ├── ApplyUUPESD.png │ ├── ApplyWIMBoot.png │ ├── BackupImage-WimPath.png │ ├── BackupImage.png │ ├── CleanupUI.png │ ├── CompactOS.png │ ├── ExportWIMBoot.png │ ├── ISOInstallOS.png │ ├── InstallUpdates.png │ ├── MainUI.png │ ├── OpenSession.png │ ├── RecoveryImage.png │ ├── SaveISO.png │ └── ScanUpdates.png ├── library │ ├── $navigation.md │ ├── Dism2Dism++.md │ ├── Quickstart.md │ ├── bestpractice │ │ ├── 使用Dism++安装系统.md │ │ └── 给ISO离线集成补丁.md │ ├── reference │ │ ├── 术语.md │ │ ├── 自定义规则.md │ │ ├── 规则结构参考.md │ │ └── 隐藏功能.md │ └── start.md └── log.html ├── es.xml ├── fonts ├── FontAwesome.otf ├── fontawesome-webfont.eot ├── fontawesome-webfont.svg ├── fontawesome-webfont.ttf ├── fontawesome-webfont.woff └── fontawesome-webfont.woff2 ├── fr.xml ├── images ├── 1487498940074.jpg ├── antivirus-antimalware-large.png ├── avast-software-smaller-white.png ├── browser-cleanup-large.png ├── favicon.ico ├── hns-large.png ├── icon-social.png ├── icon-sprite-header-100px.png ├── icon06.gif ├── icon07.gif ├── icon08.gif ├── icons-sprite-nav-orange.png ├── icons-sprite-nav.png ├── line04.gif ├── logo.png ├── password-manager-large.png ├── remote-assistance-large.png ├── slide-top.png ├── smart-scan-large.png ├── sut │ ├── DifferDone.jpg │ ├── InstallApp.jpg │ ├── MakingSut.jpg │ ├── ScanDiffer.jpg │ ├── StartInstallApp.jpg │ ├── StartMakerSut.jpg │ ├── SutStart.jpg │ ├── ViewData.jpg │ └── Wait.jpg ├── up.png └── weixin.png ├── index.html ├── it.xml ├── ja.xml ├── js ├── jquery.flexslider.min.js ├── jquery.history.js └── jquery.scrolltopcontrol.js ├── pt.xml ├── ru.xml ├── tr.xml ├── uk.xml ├── zh-Hans.xml ├── zh-Hans ├── Document.html ├── images │ ├── ApplyUUPESD.png │ ├── ApplyWIMBoot.png │ ├── BackupImage-WimPath.png │ ├── BackupImage.png │ ├── CleanupUI.png │ ├── CompactOS.png │ ├── ExportWIMBoot.png │ ├── ISOInstallOS.png │ ├── InstallUpdates.png │ ├── MainUI.png │ ├── OpenSession.png │ ├── RecoveryImage.png │ ├── SaveISO.png │ └── ScanUpdates.png ├── library │ ├── $navigation.md │ ├── Best │ │ ├── 使用Dism++安装系统.md │ │ └── 给ISO离线集成补丁.md │ ├── Dism++Library │ │ ├── Dism++sut.md │ │ ├── 术语.md │ │ ├── 自定义规则.md │ │ ├── 规则结构参考.md │ │ └── 隐藏功能.md │ ├── Dism2Dism++.md │ ├── Quickstart.md │ └── start.md └── log.html ├── zh-Hant.xml └── zh-Hant ├── Document.html ├── images ├── ApplyUUPESD.png ├── ApplyWIMBoot.png ├── BackupImage-WimPath.png ├── BackupImage.png ├── CleanupUI.png ├── CompactOS.png ├── ExportWIMBoot.png ├── ISOInstallOS.png ├── InstallUpdates.png ├── MainUI.png ├── OpenSession.png ├── RecoveryImage.png ├── SaveISO.png ├── ScanUpdates.png └── sut │ ├── DifferDone.jpg │ ├── InstallApp.jpg │ ├── MakingSut.jpg │ ├── ScanDiffer.jpg │ ├── StartInstallApp.jpg │ ├── StartMakerSut.jpg │ ├── SutStart.jpg │ ├── ViewData.jpg │ └── Wait.jpg ├── library ├── $navigation.md ├── Best │ ├── 使用Dism++安裝系統.md │ └── 給ISO離線整合更新.md ├── Dism++Library │ ├── Dism++sut.md │ ├── Dism++sut.md.temp │ ├── 自訂規則.md │ ├── 術語.md │ ├── 規則結構參考.md │ └── 隱藏功能.md ├── Dism2Dism++.md ├── Quickstart.md └── start.md └── log.html /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | If you are not a Chinese, please use translator. 2 | 3 | 如果是清理规则、优化规则、多语言改善的提议,建议直接发布 Pull Request 直接为 4 | Dism++ 添加,不明白的可以直接通过邮箱或者 QQ 群直接联系鸭子;当然你发 Issue 也 5 | 没问题,只是开发者们没法处理,需要等待有志者帮你发 Pull Request 了。 6 | 7 | 如果是除此之外的问题,发 Issues 即可。 8 | 9 | 发 Issue 需要注意你当前使用的环境信息描述清楚,譬如 Dism++ 的版本、放置路径和截 10 | 图,Windows 的版本(完整版本,例如 10.0.18362.10014)、SKU(例如 专业版)、架构 11 | (例如 AMD64),当然如果能提供 Dism++ 目录下 Config 内的日志文件和 Windows\Logs 12 | 目录内有关 CBS 和 DISM 的相关日志我们会更加高兴。 13 | 14 | 发布问题的时候请删掉以上内容,我们也不通过格式来限制你们。 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | chuyu-analysis/*.sql 2 | chuyu-analysis/config.php 3 | *.opendb 4 | /RCMake/Debug 5 | /Debug 6 | *.db 7 | *.ipch 8 | *.suo 9 | *.suo 10 | *.user 11 | /www.chuyu.me/zh-Hans/index.html 12 | /www.chuyu.me/zh-Hant/index.html 13 | *.db-shm 14 | *.db-wal 15 | /.vs/Languages/v15 16 | /www.chuyu.me/en/index.html 17 | /www.chuyu.me/ja/index.html 18 | /.vs 19 | /www.chuyu.me/de/index.html 20 | /www.chuyu.me/MakeWeb.cmd 21 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Chuyu-Team 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Languages.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.24720.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Files", "Files.vcxproj", "{449EC66A-E39D-4022-A36F-48A30602C6CA}" 7 | EndProject 8 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RCMake", "RCMake\RCMake.vcxproj", "{5907D19F-592D-4D19-9613-3163800545D4}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Debug|x64 = Debug|x64 13 | Debug|x86 = Debug|x86 14 | Release|x64 = Release|x64 15 | Release|x86 = Release|x86 16 | EndGlobalSection 17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 18 | {449EC66A-E39D-4022-A36F-48A30602C6CA}.Debug|x64.ActiveCfg = Debug|x64 19 | {449EC66A-E39D-4022-A36F-48A30602C6CA}.Debug|x64.Build.0 = Debug|x64 20 | {449EC66A-E39D-4022-A36F-48A30602C6CA}.Debug|x86.ActiveCfg = Debug|Win32 21 | {449EC66A-E39D-4022-A36F-48A30602C6CA}.Debug|x86.Build.0 = Debug|Win32 22 | {449EC66A-E39D-4022-A36F-48A30602C6CA}.Release|x64.ActiveCfg = Release|x64 23 | {449EC66A-E39D-4022-A36F-48A30602C6CA}.Release|x64.Build.0 = Release|x64 24 | {449EC66A-E39D-4022-A36F-48A30602C6CA}.Release|x86.ActiveCfg = Release|Win32 25 | {449EC66A-E39D-4022-A36F-48A30602C6CA}.Release|x86.Build.0 = Release|Win32 26 | {5907D19F-592D-4D19-9613-3163800545D4}.Debug|x64.ActiveCfg = Debug|x64 27 | {5907D19F-592D-4D19-9613-3163800545D4}.Debug|x64.Build.0 = Debug|x64 28 | {5907D19F-592D-4D19-9613-3163800545D4}.Debug|x86.ActiveCfg = Debug|Win32 29 | {5907D19F-592D-4D19-9613-3163800545D4}.Debug|x86.Build.0 = Debug|Win32 30 | {5907D19F-592D-4D19-9613-3163800545D4}.Release|x64.ActiveCfg = Release|x64 31 | {5907D19F-592D-4D19-9613-3163800545D4}.Release|x64.Build.0 = Release|x64 32 | {5907D19F-592D-4D19-9613-3163800545D4}.Release|x86.ActiveCfg = Release|Win32 33 | {5907D19F-592D-4D19-9613-3163800545D4}.Release|x86.Build.0 = Release|Win32 34 | EndGlobalSection 35 | GlobalSection(SolutionProperties) = preSolution 36 | HideSolutionNode = FALSE 37 | EndGlobalSection 38 | EndGlobal 39 | -------------------------------------------------------------------------------- /NCleanerReadMe.md: -------------------------------------------------------------------------------- 1 | # NCleaner 自述 2 | 3 | ## 介绍 4 | 首先感谢使用和支持该项目的一切用户;其次我还想感谢Dism++的开发团队(即初雨团队) 5 | 6 | NCleaner原本是一个Dism++第三方清理增强插件;由于我不想在用Dism++的时候还要用 7 | CCleaner;于是诞生了这个插件 8 | 9 | Dism++作者(小鸭子)打算把清理功能外包给NCleaner(或者说是Dism++深度整合 10 | NCleaner)我也很赞同作者的看法,于是从NCleaner 1.0.1.4开始NCleaner正式成为 11 | Dism++的组件 12 | 13 | 先谈谈我认为与Dism++深度整合的好处 14 | - 大部分人不需要单独下载NCleaner 15 | - NCleaner不再会因为Dism++API结构更改而背锅 16 | - 测试范围更加广阔,出Bug即使我没空修复Dism++作者也能帮忙修复(*^_^*) 17 | 18 | **如果发现Bug和提建议,希望你们可以多多包涵并请及时在群内反馈** 19 | 20 | - 初雨Dism++官方群:200783396 282276394 21 | - M2-Team官方群:466078631 22 | 23 | **谢谢,By Chuyu Team & M2-Team** 24 | 25 | ## 更新日志 26 | **NCleaner 1.0.4.0** 27 | - 移除缩略图缓存清理残留代码 28 | - 在NCleaner 1.0.3.0开始缩略图缓存清理已使用DISM++规则实现 29 | - 整理并优化代码 30 | - 完全使用MSDN文档化API 31 | 32 | **NCleaner 1.0.3.10** 33 | - 降低某些情况下潜在dll抗劫风险 34 | - 解决潜在初始化崩溃问题 35 | 36 | **NCleaner 1.0.3.9** 37 | - 解决系统还原清理功能可能发生的崩溃的两个Bug 38 | 39 | **NCleaner 1.0.3.8** 40 | - 添加dll抗劫持功能 41 | 42 | **NCleaner 1.0.3.6** 43 | - 深度整合M2-SDK库 44 | - 因为其他M2工具不再用到该库,但该库一旦修改,GitHub对应部分会同步 45 | - 删除无用代码 46 | - 根据VC编译器文档的建议,使用 /W4 编译 47 | 48 | **NCleaner 1.0.3.5** 49 | - 修复新版Visual Studio安装源缓存清理的日志输出Bug 50 | - 整理并优化代码 51 | - 修改编译选项 52 | - 根据新版VC-LTL文档 53 | - 添加损坏的AppX在线清理 54 | - 清理损坏的AppX。例如Visual Studio的通用应用XAML设计器暴力删除临时生成的设计 55 | 器应用,于是会出现大量损坏的AppX 56 | 57 | **NCleaner 1.0.3.4** 58 | - 重新调整Release编译选项为“使大小最小化 (/O1)” 59 | - 优化日志输出逻辑 60 | 61 | **NCleaner 1.0.3.3** 62 | - 调整Release编译选项为“使速度最大化 (/O2)” 63 | - 同步VC-LTL版本至1.0.0.8 64 | - 整理并优化代码 65 | - Package Cache清理支持清理特定用户的Package Cache 66 | 67 | **NCleaner 1.0.3.2** 68 | - 整理并优化代码 69 | 70 | **NCleaner 1.0.3.1** 71 | - 整理并优化代码 72 | 73 | **NCleaner 1.0.3.0** 74 | - 缩略图缓存清理完全使用Dism++规则实现 75 | - 增加新版Visual Studio安装源缓存清理 76 | - 整理代码 77 | 78 | **NCleaner 1.0.2.9** 79 | - 引入M2-SDK 80 | - https://github.com/M2Team/M2-SDK 81 | - 移除重复代码 82 | - 缩略图缓存清理使用Dism++的ExplorerNotify功能启动Explorer以解决#43问题 83 | - 链接:https://github.com/Chuyu-Team/Dism-Multi-language/issues/43 84 | 85 | **NCleaner 1.0.2.8** 86 | - 使用VS2017重新编译 87 | - By mingkuang 88 | 89 | **NCleaner 1.0.2.5** 90 | - 解决BUG,修复LocalPackage文件名为空时程序奔溃问题 91 | - By mingkuang 92 | 93 | **NCleaner 1.0.2.4** 94 | - 在Installer清理的注册表操作传入备份恢复特权Flag 95 | - 同步M2.Native库并优化编译结果 96 | 97 | NCleaner 1.0.2.3 98 | - 修复在32位模块下取消对sse和sse2指令集的依赖无效问题 99 | - 同步M2最新代码重新编译 100 | 101 | **NCleaner 1.0.2.2** 102 | - 新增Installer清理 103 | - 实验性功能,专家模式Only 104 | 105 | **NCleaner 1.0.2.1** 106 | - 增加传递优化(DeliveryOptimization)缓存清理 107 | - 使Package Cache清理与Windows Installer实现互斥 108 | 109 | **NCleaner 1.0.2.0** 110 | - Package Cache清理:改善对.Net Core安装源的清理 111 | - 缩略图缓存清理:减少重启Explorer时的API调用次数 112 | - 在32位模块下取消对sse和sse2指令集的依赖 113 | - 感谢mingkuang 114 | - 解决某些古董CPU机器因为没有SSE指令集而崩溃的问题 115 | 116 | **NCleaner 1.0.1.6** 117 | - 修复系统还原点清理扫描奔溃的Bug(由mingkuang修复) 118 | 119 | **NCleaner 1.0.1.5** 120 | - 优化并调整代码 121 | - 修复Windows事件日志清理的Bug 122 | 123 | **NCleaner 1.0.1.4** 124 | - 嵌入Dism++ 125 | - 继承Dism++的全部清理规则,且把清理规则移入Data.xml,并作以下调整 126 | - 对清理规则进行归类 127 | - NCleaner规则融入Dism++分类 128 | - 移除Installer清理 129 | - 这是上古残留,且NCleaner也有一份替代实现 130 | - 移除Visual Studio安装源清理 131 | - 因为有更好的方案,即Package Cache清理 132 | - 临时文件清理规则扩充,应用容器临时文件清理规则合并入临时文件清理 133 | - 应用容器CLR缓存清理合并入Windows日志清理 134 | - Windows事件清理实现移入NCleaner 135 | - 多语言部分移除 136 | - 我相信Dism++翻译组,当然参考翻译会提供给他们 137 | - 移除对旧版本Dism++的兼容代码 138 | - 使用Dism++内部方法调用Dism++ API 139 | - 为Dism++清理函数提供转发 140 | - 优化代码 141 | - 使用Native API加载DLL并获取函数入口 142 | - 系统还原点清理不再获取不必要的函数入口 143 | - 缩略图缓存Explorer重启部分调用Native API模拟令牌 144 | - 移除NCleaner关于对话框 145 | - 因为Dism++关于UI可以直接查看NCleaner版本号 146 | - 修复Package Cache清理不能离线使用的Bug 147 | - 暂时屏蔽Installer清理 148 | - 感谢夏虫反馈Bug,虽然Bug修复容易;但是干脆重新研究下清理方案 149 | 150 | **NCleaner 1.0.1.3** 151 | - 移除IE网页缓存清理 152 | - 被WinINet网页缓存清理替代 153 | - 移除IE Cookies清理 154 | - 被WinINet Cookies清理替代 155 | - 移除Edge网页缓存清理 156 | - 被WinINet网页缓存清理替代 157 | - 移除Edge Cookies清理 158 | - 被WinINet Cookies清理替代 159 | - 添加WinINet网页缓存清理 160 | - 清理每个用户账户和应用容器下的Windows网络组件(例如IE,Edge)的网页缓存(仅 161 | 支持默认目录) 162 | - 添加WinINet Cookies清理 163 | - 清理每个用户账户和应用容器下的Windows网络组件(例如IE,Edge)的Cookies(仅 164 | 支持默认目录) 165 | - 增强微软系安软无用文件清理 166 | - 添加删除MA NIS的日志文件 167 | - 修复零售演示离线内容清理规则 168 | - 添加应用容器临时文件清理 169 | - 清理每个应用容器下的临时文件 170 | - 添加应用容器CLR缓存清理 171 | - 清理每个应用容器下的CLR缓存 172 | - 新清理项目多语言同步 173 | - 感谢随便问我 174 | 175 | **NCleaner 1.0.1.2** 176 | - 改善语言ini文件解析 177 | - 修复Readme文档的错误 178 | - 解决与Dism++ 10.1.9.1的兼容性问题 179 | - 感谢东方牛 180 | 181 | **NCleaner 1.0.1.1** 182 | - 提升对Dism++的最低版本要求到10.1.6.5 183 | - 当时和mingkuang讨论时,Dism++最新版本是10.1.6.5 184 | - 删除对旧版本的兼容代码 185 | - 加入多语言(英语和繁体中文)支持 186 | - 感谢hortz, ITechDeveloper, 随便问我 187 | - 解决与Dism++ 10.1.10.0的兼容性问题 188 | - 感谢mingkuang和那位反馈给mingkuang的无名英雄 189 | - 如果可以提供ID,则我会修改本条目 190 | 191 | **NCleaner 1.0.0.7** 192 | - 去除工具箱NCleaner项目前面的#号 193 | - 优化代码 194 | - 增加零售演示离线内容清理 195 | - 完全使用Native API实现文件遍历和删除 196 | - 修复日志中返回的错误值Bug 197 | - 修复潜在的调用Dism++API返回时的判断Bug 198 | - 由于Dism++规定,只有返回S_OK代表执行成功 199 | 200 | **NCleaner 1.0.0.6** 201 | - 禁用多语言支持 202 | - 增加Visual Studio日志清理 203 | - 增加Installer目录清理 204 | - 基本清理功能,类似WICleanup小工具 205 | - 使用TaskDialog替代MessageBox实现关于NCleaner对话框 206 | - 修复潜在的规则Bug和插件Bug 207 | - 扩充了Package Cache清理规则 208 | 209 | **NCleaner 1.0.0.5** 210 | - 改进检测规则 211 | - 优化清理项目描述 212 | - 把程序内嵌资源移入资源DLL以减少空间占用 213 | - 根据Windows10的新图标尺寸重新生成了图标 214 | - 优化在Dism++下显示NCleaner图标的效果 215 | - 需要Dism++ 10.1.5.8(2016年6月9日及之后编译)及以上版本才能享受到 216 | - 初步加入多语言支持 217 | - 需要Dism++ 10.1.5.8(2016年6月9日及之后编译)及以上版本才能享受到 218 | 219 | **NCleaner 1.0.0.4** 220 | - 减小系统还原点清理扫描大小误差;并设定大小小于512MB不予清理 221 | - 根据mingkuang的建议做出的调整 222 | - 添加Package Cache清理 223 | - 清理后基于WIX的安装程序例如VS可以正常卸载;但升级、修复、增添组件需要联网或 224 | 者备好安装镜像 225 | - 添加Web平台安装程序缓存清理 226 | - 安装Azure开发工具时会用到WPI,其缓存几乎只是一次性使用,可以安全删除 227 | - 小工具中的NCleaner图标占位符起到显示NCleaner插件版本信息的作用 228 | 229 | **NCleaner 1.0.0.3** 230 | - 增加微软系安软无用文件清理 231 | - 提取自磁盘清理,由于Dism++引擎高效,所以原理相同但速度比磁盘清理快得多 232 | - 使用VC-LTL运行时替代msvc运行时,大幅度减小程序大小 233 | - 程序大小减小到原来的30% ,感谢初雨团队,特别是mingkuang 234 | - 修复离线模式下显示系统还原点清理的Bug 235 | - 修复离线模式下图标缓存清理出现未指定错误的Bug 236 | - 优化代码 237 | - 按照mingkuang的建议在清理项目旁边加上“不建议频繁清理字样” 238 | - 修复IE Cookies清理位置与IE 网页缓存一致的Bug 239 | 240 | **NCleaner 1.0.0.2** 241 | - 移除IE和Edge缓存清理 242 | - 因为有更好的替代清理项 243 | - 增加Windows图标缓存清理 244 | - 修改自自己以前在远景发布的Windows图标缓存清理工具,支持离线,联机情况下只支 245 | 持当前用户清理;表示大部分人用Windows也是单用户模式,所以应该影响不大 246 | - 添加IE和Edge各自的网页缓存和Cookies清理 247 | - 只是IE的只支持默认路径;虽然Edge也是默认路径,但Edge路径固定 248 | - 在小工具增加“NCleaner选项”项 249 | - 虽然其中没有实现什么功能,只是占位符;也说明你的Dism++是否集成NCleaner 250 | 251 | **NCleaner 1.0.0.1** 252 | - 增加系统还原点清理 253 | - 这是我曾经研究内容的精华,一些被系统还原点占尽系统盘空间的人可以因此受益 254 | - 增加IE和Edge缓存清理 255 | - 照搬Windows 10 磁盘清理实现,因为足够简单;但是只能用于Win10联机映像且返回 256 | 可清理大小不准确;因为微软自家的磁盘清理返回的Internet缓存大小也不准确;也 257 | 证明我是照搬微软的实现,笑 258 | 259 | ## 第三方库列表 260 | **VC-LTL** 261 | - 项目首页:https://github.com/Chuyu-Team/VC-LTL 262 | - 介绍和授权: 263 | - VC-LTL 是一个开源的第三方修改VC库,大家都可以免费,无条件,甚至是用于商业环 264 | 境。本库基于VC140修改,所以也同样适用Common Public License协议。 265 | - 但我也希望如果你可以在程序的说明文件中声明下,使用了此库,来使更多人受益。 266 | ——mingkuang 267 | 268 | **M2-SDK** 269 | - 项目首页:https://github.com/M2Team/M2-SDK 270 | - 介绍和授权: 271 | - M2-SDK是M2-Team系列工具使用的开发包 272 | - https://github.com/M2Team/M2-SDK/blob/master/License.txt 273 | -------------------------------------------------------------------------------- /RCMake/RCMake.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/RCMake/RCMake.cpp -------------------------------------------------------------------------------- /RCMake/RCMake.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 头文件 23 | 24 | 25 | 头文件 26 | 27 | 28 | 29 | 30 | 源文件 31 | 32 | 33 | 源文件 34 | 35 | 36 | -------------------------------------------------------------------------------- /RCMake/ReadMe.txt: -------------------------------------------------------------------------------- 1 | ======================================================================== 2 | 控制台应用程序:RCMake 项目概述 3 | ======================================================================== 4 | 5 | 此应用程序用于编译Dism++资源文件,通过一个xml可以得到语言资源。 6 | -------------------------------------------------------------------------------- /RCMake/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/RCMake/stdafx.cpp -------------------------------------------------------------------------------- /RCMake/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/RCMake/stdafx.h -------------------------------------------------------------------------------- /RCMake/targetver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/RCMake/targetver.h -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Dism-Multi-language 2 | Dism++ resource files for supporting translation to various languages. 3 | The default language used for development is in Simplified Chinese. 4 | 5 | --- 6 | 7 | ## [Data.xml] 8 | Dism++ rules file which provides cleanup and optimization rules. 9 | 10 | --- 11 | 12 | ## Languages of Dism++ (Languages folder) 13 | 14 | | Name | Language | Contributors 15 | | ------ | -------- | ------------ 16 | | bg.xml | Bulgarian | Мартин Тайна, Pavel Belivakov 17 | | cs.xml | Czech | Richard Kahl 18 | | de.xml | German | franz@drwindows.de, [Henry2o1o](https://github.com/Henry2o1o) 19 | | en.xml | English | EMLVIRUS, Frag, Hexhu, raymai97, mdlgaofei, Mouri_Naruto, MikeGao, wondersnefu 20 | | es.xml | Spanish | Oleada, MS-PC2, nomemolesteis@gmail.com 21 | | fr.xml | French | JP.Sudret, P.Verdy 22 | | hu.xml | Hungarian | szuper 23 | | it.xml | Italian | Massimiliano F, Jumy 24 | | ja.xml | Japanese | 山形まり花 25 | | ko.xml | Korean | OldMac, 阿泽西 26 | | pl-PL.xml | Polish | romuald68@gmail.com, Bladius (KuchtaPC2015@outlook.com) 27 | | pt.xml | Portuguese | JNylson 28 | | ru.xml | Russian | Black Alex, Vasiliy Nasonov, virus, Vladimir, ZT 29 | | tr.xml | Turkish | Kaya Zeren 30 | | zh-Hans.xml | Chinese Simplified | mingkuang 31 | | zh-Hant.xml | Chinese Traditional | GT Wang (http://mkvq.blogspot.com) 、jamesfuh、月下独酌 32 | 33 | --- 34 | 35 | ## [chuyu-analysis] 36 | Dism++崩溃统计后台。 37 | 感谢 Reinforce-II。 38 | 39 | --- 40 | 41 | ## [www.chuyu.me] 42 | Base path for the official Dism++ website and help documentation. 43 | Dism++官方网站以及帮助文档。 44 | 45 | --- 46 | 47 | ## Languages of Dism++ website (www.chuyu.me folder) 48 | | Name | Language | Contributors 49 | | ------ | -------- | ------------ 50 | | de.xml | German | franz@drwindows.de 51 | | en.xml | English | Frag, Hexhu 52 | | es.xml | Spanish | MS-PC2 53 | | fr.xml | French | P.Verdy 54 | | ja.xml | Japanese | 山形まり花 55 | | pt.xml | Portuguese | JNylson 56 | | ru.xml | Russian | AHOHNMYC 57 | | zh-Hans.xml | Chinese Simplified | mingkuang 58 | | zh-Hant.xml | Chinese Traditional | GT Wang (http://mkvq.blogspot.com) 59 | -------------------------------------------------------------------------------- /ThirdParty.md: -------------------------------------------------------------------------------- 1 | # 第三方引用列表 2 | 此文档用于记录Dism++所使用的第三方库。库的顺序只是说明Dism++使用的先后顺序,并不表示重次。 3 | 4 | ## DirectUI - UI Library 5 | 6 | Written by Bjarke Viksoe (bjarke@viksoe.dk) 7 | Copyright (c) 2006-2007 Bjarke Viksoe. 8 | 9 | This code may be used in compiled form in any way you desire. These source files may be redistributed by any means PROVIDING it is not sold for profit without the authors written consent, and providing that this notice and the authors name is included. 10 | 11 | This file is provided "as is" with no expressed or implied warranty. The author accepts no liability if it causes any damage to you or your computer whatsoever. It's free, so don't hassle me about it. Beware of bugs. 12 | 13 | ## DuiLib 14 | 15 | https://github.com/duilib/duilib 16 | 17 | Copyright (c) 2010-2011, duilib develop team(https:github.com/duilib/duilib).All rights reserved. 18 | 19 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met. 20 | 21 | Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 22 | 23 | Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 24 | 25 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | 27 | ## zlib 28 | 29 | zlib.h -- interface of the 'zlib' general purpose compression library 30 | version 1.1.3, July 9th, 1998 31 | 32 | Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler 33 | 34 | This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. 35 | 36 | Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 37 | 38 | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 39 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 40 | 3. This notice may not be removed or altered from any source distribution. 41 | 42 | Jean-loup Gailly Mark Adler 43 | jloup@gzip.org madler@alumni.caltech.edu 44 | 45 | 46 | The data format used by the zlib library is described by RFCs (Request for Comments) 1950 to 1952 in the files ftp:ds.internic.net/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). 47 | 48 | 49 | The 'zlib' compression library provides in-memory compression and decompression functions, including integrity checks of the uncompressed data. This version of the library supports only one compression method (deflation) but other algorithms will be added later and will have the same stream interface. 50 | 51 | Compression can be done in a single step if the buffers are large enough (for example if an input file is mmap'ed), or can be done by repeated calls of the compression function. In the latter case, the application must provide more input and/or consume the output (providing more output space) before each call. 52 | 53 | The library also supports reading and writing files in gzip (.gz) format with an interface similar to that of stdio. 54 | 55 | The library does not install any signal handler. The decoder checks the consistency of the compressed data, so the library should never crash even in case of corrupted input. 56 | 57 | for more info about .ZIP format, see ftp:ftp.cdrom.com/pub/infozip/doc/appnote-970311-iz.zip PkWare has also a specification at ftp:ftp.pkware.com/probdesc.zip 58 | 59 | ## rapidxml 60 | 一个高性能轻量级xml解析引擎。 61 | 62 | http://rapidxml.sourceforge.net/ 63 | 64 | RapidXml is an attempt to create the fastest XML parser possible, while retaining useability, portability and reasonable W3C compatibility. It is an in-situ parser written in modern C++, with parsing speed approaching that of strlen function executed on the same data. 65 | 66 | RapidXml has been around since 2006, and is being used by lots of people. HTC uses it in some of its mobile phones. 67 | 68 | If you are looking for a stable and fast parser, look no further. Integration with your project will be trivial, because entire library is contained in a single header file, and requires no building or configuration. 69 | 70 | Current version is RapidXml 1.13. Also available is its online Manual with a full and detailed reference. You may also like to check Boost.PropertyTree library, which presents a higher level interface, and uses RapidXml as its default XML parser. 71 | 72 | The author of RapidXml is Marcin Kalicinski. 73 | 74 | 75 | Copyright � 2006, 2009 Marcin Kalicinski (kalita at poczta dot onet dot pl) 76 | 77 | 78 | ## MsIsoReader 79 | 80 | 微软的一个开源ISO库,为Dism++提供ISO读取支持。 81 | 82 | ## minhook 83 | 84 | https://github.com/TsudaKageyu/minhook 85 | 86 | The Minimalistic x86/x64 API Hooking Library for Windows。 87 | 88 | ## ms-compress 89 | 90 | https://github.com/coderforlife/ms-compress 91 | 92 | Open source implementations of Microsoft compression algorithms. The progress is listed below. "RTL" refers to the native RtlCompressBuffer and RtlUncompressBuffer functions from Windows 8's ntdll.dll. Comparisons are made against the max compression engine for RTL functions. -------------------------------------------------------------------------------- /chuyu-analysis/client_update.php: -------------------------------------------------------------------------------- 1 | '/path/to/client-key.pem', 13 | //PDO::MYSQL_ATTR_SSL_CERT => '/path/to/client-cert.pem', 14 | //PDO::MYSQL_ATTR_SSL_CA => '/path/to/ca-cert.pem', 15 | //PDO::ATTR_PERSISTENT => true, 16 | ) 17 | ); 18 | } 19 | catch(PDOException $e) { 20 | die ("Error!: " . $e->getMessage()); 21 | } 22 | 23 | $rawData = file_get_contents('php://input'); 24 | $xmlparser = xml_parser_create(); 25 | if(xml_parse_into_struct($xmlparser,$rawData,$values) == 0) { 26 | die("Parse Failed!"); 27 | } 28 | 29 | $data = array(); 30 | $sql = "insert into client_info (id, architect, clientguid, osversion, dismversion, ulltotalphys, dwnumberofprocessors, languageid, editionid, lasttime) values (default, :architect, :clientguid, :osversion, :dismversion, :ulltotalphys, :dwnumberofprocessors, :languageid, :editionid, default) ON DUPLICATE KEY UPDATE architect = :architect, clientguid = :clientguid, osversion = :osversion, dismversion = :dismversion, ulltotalphys = :ulltotalphys, dwnumberofprocessors = :dwnumberofprocessors, languageid = :languageid, editionid = :editionid, lasttime = :lasttime"; 31 | foreach($values as $node) { 32 | if($node['type'] == 'complete' && $node['level'] == 2) { 33 | switch($node['tag']){ 34 | case 'ARCHITECT': 35 | $data[':architect'] = hexdec($node['value']); 36 | break; 37 | case 'CLIENTGUID': 38 | $data[':clientguid'] = $node['value']; 39 | break; 40 | case 'OSVERSION': 41 | $data[':osversion'] = hexdec($node['value']); 42 | break; 43 | case 'DISMVERSION': 44 | $data[':dismversion'] = hexdec($node['value']); 45 | break; 46 | case 'ULLTOTALPHYS': 47 | $data[':ulltotalphys'] = hexdec($node['value']); 48 | break; 49 | case 'DWNUMBEROFPROCESSORS': 50 | $data[':dwnumberofprocessors'] = hexdec($node['value']); 51 | break; 52 | case 'LANGUAGEID': 53 | $data[':languageid'] = hexdec($node['value']); 54 | break; 55 | case 'EDITIONID': 56 | $data[':editionid'] = $node['value']; 57 | break; 58 | default: 59 | break; 60 | } 61 | } 62 | } 63 | try{ 64 | $data[':lasttime'] = date("Y-m-d H:i:s"); 65 | $pdo->prepare($sql)->execute($data); 66 | } 67 | catch(PDOException $e) { 68 | die ("Error!: " . $e->getMessage()); 69 | } 70 | $pdo = null; -------------------------------------------------------------------------------- /chuyu-analysis/crash_report.php: -------------------------------------------------------------------------------- 1 | getMessage()); 16 | } 17 | 18 | $rawData = file_get_contents('php://input'); 19 | $xmlparser = xml_parser_create(); 20 | if(xml_parse_into_struct($xmlparser,$rawData,$values) == 0) { 21 | die("Parse Failed!"); 22 | } 23 | 24 | $data = array(); 25 | $sql = "insert into crash_info (id, clientguid, osversion, dismversion, crashmoduleversion, exceptionoffset, exceptioncode, crashmodule, time) values (default, :clientguid, :osversion, :dismversion, :crashmoduleversion, :exceptionoffset, :exceptioncode, :crashmodule, default)"; 26 | foreach($values as $node) { 27 | if($node['type'] == 'complete' && $node['level'] == 2) { 28 | switch($node['tag']){ 29 | case 'CLIENTGUID': 30 | $data[':clientguid'] = $node['value']; 31 | break; 32 | case 'OSVERSION': 33 | $data[':osversion'] = hexdec($node['value']); 34 | break; 35 | case 'DISMVERSION': 36 | $data[':dismversion'] = hexdec($node['value']); 37 | break; 38 | case 'CRASHMODULEVERSION': 39 | $data[':crashmoduleversion'] = hexdec($node['value']); 40 | break; 41 | case 'EXCEPTIONOFFSET': 42 | $data[':exceptionoffset'] = hexdec($node['value']); 43 | break; 44 | case 'EXCEPTIONCODE': 45 | $data[':exceptioncode'] = hexdec($node['value']); 46 | break; 47 | case 'CRASHMODULE': 48 | $data[':crashmodule'] = $node['value']; 49 | break; 50 | default: 51 | break; 52 | } 53 | } 54 | } 55 | try{ 56 | $pdo->prepare($sql)->execute($data); 57 | } 58 | catch(PDOException $e) { 59 | die ("Error!: " . $e->getMessage()); 60 | } 61 | $pdo = null; -------------------------------------------------------------------------------- /chuyu-analysis/index.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
Part of ClientGuid:OS Version: ~ DISM Version: ~ CrashModule Version: ~
Exception Code:Part of CrashModule Name:Time: ~
25 | 26 | 27 |
28 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
TimeClient GuidOS VersionDISM VersionCrash Module VerException OffsetException CodeCrash Module
51 | -------------------------------------------------------------------------------- /chuyu-analysis/query.php: -------------------------------------------------------------------------------- 1 | getMessage()); 13 | } 14 | 15 | $postdata = json_decode(file_get_contents('php://input')); 16 | $sql = "select * from `crash_info` where "; 17 | if(isset($postdata->{"clientguid"}) && $postdata->{"clientguid"} != ""){ 18 | $clientguid = $postdata->{"clientguid"}; 19 | $sql = $sql . "`clientguid` like \"%${clientguid}%\" AND "; 20 | } 21 | if(isset($postdata->{"minosversion"}) && $postdata->{"minosversion"} != ""){ 22 | $minosversion = $postdata->{"minosversion"}; 23 | $sql = $sql . "`osversion` >= ${minosversion} AND "; 24 | } 25 | if(isset($postdata->{"maxosversion"}) && $postdata->{"maxosversion"} != ""){ 26 | $maxosversion = $postdata->{"maxosversion"}; 27 | $sql = $sql . "`osversion` <= ${maxosversion} AND "; 28 | } 29 | if(isset($postdata->{"mindismversion"}) && $postdata->{"mindismversion"} != ""){ 30 | $mindismversion = $postdata->{"mindismversion"}; 31 | $sql = $sql . "`dismversion` >= ${mindismversion} AND "; 32 | } 33 | if(isset($postdata->{"maxdismversion"}) && $postdata->{"maxdismversion"} != ""){ 34 | $maxdismversion = $postdata->{"maxdismversion"}; 35 | $sql = $sql . "`dismversion` <= ${maxdismversion} AND "; 36 | } 37 | if(isset($postdata->{"mincrashmoduleversion"}) && $postdata->{"mincrashmoduleversion"} != ""){ 38 | $mincrashmoduleversion = $postdata->{"mincrashmoduleversion"}; 39 | $sql = $sql . "`crashmoduleversion` >= ${mincrashmoduleversion} AND "; 40 | } 41 | if(isset($postdata->{"maxcrashmoduleversion"}) && $postdata->{"maxcrashmoduleversion"} != ""){ 42 | $maxcrashmoduleversion = $postdata->{"maxcrashmoduleversion"}; 43 | $sql = $sql . "`crashmoduleversion` <= ${maxcrashmoduleversion} AND "; 44 | } 45 | if(isset($postdata->{"exceptioncode"}) && $postdata->{"exceptioncode"} != ""){ 46 | $exceptioncode = $postdata->{"exceptioncode"}; 47 | $sql = $sql . "`exceptioncode` = ${exceptioncode} AND "; 48 | } 49 | if(isset($postdata->{"crashmodule"}) && $postdata->{"crashmodule"} != ""){ 50 | $crashmodule = $postdata->{"crashmodule"}; 51 | $sql = $sql . "`crashmodule` like \"%${crashmodule}%\" AND "; 52 | } 53 | if(isset($postdata->{"nobefore"}) && $postdata->{"nobefore"} != ""){ 54 | $nobefore = $postdata->{"nobefore"}; 55 | $nobefore = date("Y-m-d H:i:s", strtotime($nobefore)); 56 | $sql = $sql . "`time` >= \"${nobefore}\" AND "; 57 | } 58 | if(isset($postdata->{"noafter"}) && $postdata->{"noafter"} != ""){ 59 | $noafter = $postdata->{"noafter"}; 60 | $noafter = date("Y-m-d H:i:s", strtotime($noafter)); 61 | $sql = $sql . "`time` <= \"${noafter}\" AND "; 62 | } 63 | $sql = $sql . "1 order by `time` desc"; 64 | 65 | try{ 66 | $sth = $pdo->prepare($sql); 67 | $sth->execute(); 68 | } 69 | catch(PDOException $e) { 70 | die ("Error!: " . $e->getMessage()); 71 | } 72 | echo json_encode($sth->fetchAll(PDO::FETCH_ASSOC)); 73 | $pdo = null; -------------------------------------------------------------------------------- /chuyu-analysis/statistics.php: -------------------------------------------------------------------------------- 1 | 'NULL' AND `time` BETWEEN NOW() - INTERVAL 30 DAY AND NOW() group by `crashmodule`"; 3 | $byosver = "SELECT `osversion`, count(`id`) as count FROM `crash_info` where `time` BETWEEN NOW() - INTERVAL 30 DAY AND NOW() group by `osversion`"; 4 | $bydismver = "SELECT `dismversion`, count(`id`) as count FROM `crash_info` where `time` BETWEEN NOW() - INTERVAL 30 DAY AND NOW() group by `dismversion`"; 5 | $bymodulever = "SELECT `crashmoduleversion`, count(`id`) as count FROM `crash_info` where `crashmoduleversion` <> 0 AND `time` BETWEEN NOW() - INTERVAL 30 DAY AND NOW() group by `crashmoduleversion`"; 6 | $byec = "SELECT `exceptioncode`, count(`id`) as count FROM `crash_info` where `exceptioncode` <> 0 AND `time` BETWEEN NOW() - INTERVAL 30 DAY AND NOW() group by `exceptioncode`"; 7 | $byday = "SELECT DATE_FORMAT(time, '%Y-%m-%d') as time, count(`id`) as count FROM `crash_info` where `time` BETWEEN NOW() - INTERVAL 30 DAY AND NOW() group by DATE_FORMAT(time, '%Y-%m-%d')"; 8 | 9 | require_once('./config.php'); 10 | try { 11 | $pdo = new PDO( 12 | "mysql:host=${dbhost};dbname=${dbname}", 13 | "${dbuser}", 14 | "${dbpass}", 15 | array() 16 | ); 17 | } 18 | catch(PDOException $e) { 19 | die ("Error!: " . $e->getMessage()); 20 | } 21 | 22 | // $postdata = json_decode(file_get_contents('php://input')); 23 | // if(isset($postdata->{"nobefore"}) && $postdata->{"nobefore"} != ""){ 24 | // $nobefore = $postdata->{"nobefore"}; 25 | // $nobefore = date("Y-m-d H:i:s", strtotime($nobefore)); 26 | // $sql = $sql . "`time` >= \"${nobefore}\" AND "; 27 | // } 28 | // if(isset($postdata->{"noafter"}) && $postdata->{"noafter"} != ""){ 29 | // $noafter = $postdata->{"noafter"}; 30 | // $noafter = date("Y-m-d H:i:s", strtotime($noafter)); 31 | // $sql = $sql . "`time` <= \"${noafter}\" AND "; 32 | // } 33 | 34 | try{ 35 | $sth=null; 36 | switch($_GET['type']) 37 | { 38 | case 'day': 39 | $sth = $pdo->prepare($byday); 40 | break; 41 | case 'module': 42 | $sth = $pdo->prepare($bymodule); 43 | break; 44 | case 'osver': 45 | $sth = $pdo->prepare($byosver); 46 | break; 47 | case 'dismver': 48 | $sth = $pdo->prepare($bydismver); 49 | break; 50 | case 'modulever': 51 | $sth = $pdo->prepare($bymodulever); 52 | break; 53 | case 'ec': 54 | $sth = $pdo->prepare($byec); 55 | break; 56 | default: 57 | $sth = $pdo->prepare($byec); 58 | break; 59 | } 60 | 61 | $sth->execute(); 62 | } 63 | catch(PDOException $e) { 64 | die ("Error!: " . $e->getMessage()); 65 | } 66 | echo json_encode($sth->fetchAll(PDO::FETCH_ASSOC)); 67 | $pdo = null; -------------------------------------------------------------------------------- /www.chuyu.me/404.html: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /www.chuyu.me/Document/index.html: -------------------------------------------------------------------------------- 1 | 51 | -------------------------------------------------------------------------------- /www.chuyu.me/Document/log.html: -------------------------------------------------------------------------------- 1 | 50 | -------------------------------------------------------------------------------- /www.chuyu.me/amWiki/css/lhjs.github-gist.css: -------------------------------------------------------------------------------- 1 | /** 2 | * GitHub Gist Theme 3 | * Author : Louis Barranqueiro - https://github.com/LouisBarranqueiro 4 | */ 5 | 6 | .hljs { 7 | display: block; 8 | background: white; 9 | padding: 0.5em; 10 | color: #333333; 11 | overflow-x: auto; 12 | } 13 | 14 | .hljs-comment, 15 | .hljs-meta { 16 | color: #969896; 17 | } 18 | 19 | .hljs-string, 20 | .hljs-variable, 21 | .hljs-template-variable, 22 | .hljs-strong, 23 | .hljs-emphasis, 24 | .hljs-quote { 25 | color: #df5000; 26 | } 27 | 28 | .hljs-keyword, 29 | .hljs-selector-tag, 30 | .hljs-type { 31 | color: #a71d5d; 32 | } 33 | 34 | .hljs-literal, 35 | .hljs-symbol, 36 | .hljs-bullet, 37 | .hljs-attribute { 38 | color: #0086b3; 39 | } 40 | 41 | .hljs-section, 42 | .hljs-name { 43 | color: #63a35c; 44 | } 45 | 46 | .hljs-tag { 47 | color: #333333; 48 | } 49 | 50 | .hljs-title, 51 | .hljs-attr, 52 | .hljs-selector-id, 53 | .hljs-selector-class, 54 | .hljs-selector-attr, 55 | .hljs-selector-pseudo { 56 | color: #795da3; 57 | } 58 | 59 | .hljs-addition { 60 | color: #55a532; 61 | background-color: #eaffea; 62 | } 63 | 64 | .hljs-deletion { 65 | color: #bd2c00; 66 | background-color: #ffecec; 67 | } 68 | 69 | .hljs-link { 70 | text-decoration: underline; 71 | } 72 | -------------------------------------------------------------------------------- /www.chuyu.me/amWiki/images/menubar_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/amWiki/images/menubar_bg.png -------------------------------------------------------------------------------- /www.chuyu.me/amWiki/js/amWiki.scrollbar.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @desc amWiki Web端·滚动条 3 | * @author Tevin 4 | */ 5 | 6 | ; 7 | (function (win, $) { 8 | 9 | 'use strict'; 10 | 11 | var list = []; 12 | setInterval(function(){ 13 | for (var i = 0, item; item = list[i]; i++) { 14 | item.checkHeight(); 15 | } 16 | }, 500); 17 | 18 | var Scroller = function (_this) { 19 | this.$e = { 20 | container: $(_this), //主容器 21 | inner: null, //正文内容 22 | bar: null, //滚动条外层 23 | box: null, //滚动条 24 | slider: null //滑块 25 | }; 26 | this.data = { 27 | contentH: 0, //内容高度 28 | containerH: 0, //容器高度 29 | containerHLast: 0, //上次容器高度 30 | barH: 0, //滚动条高度 31 | sliderH: 0 //滑块高度 32 | }; 33 | this._init(); 34 | }; 35 | 36 | Scroller.prototype._init = function () { 37 | var that = this; 38 | this.$e.container.append('
'); 39 | this.$e.bar = this.$e.container.find('.scrollbar'); 40 | this.$e.box = this.$e.bar.children('div'); 41 | this.$e.slider = this.$e.bar.find('i'); 42 | this.$e.inner = this.$e.container.children('.scroller-inner'); 43 | this._onWinResize(); 44 | $(window).on('resize', function () { 45 | that._onWinResize(); 46 | that.checkHeight(); 47 | }); 48 | this.$e.container.on('scrollbar', function () { 49 | that.checkHeight(); 50 | }); 51 | this.$e.inner.on({ 52 | 'click': function () { 53 | that.checkHeight(); 54 | }, 55 | 'scroll': function () { 56 | that._reScroll(); 57 | } 58 | }); 59 | this.checkHeight(); 60 | this._bindAction(); 61 | }; 62 | 63 | //滑块操作 64 | Scroller.prototype._bindAction = function () { 65 | var that = this; 66 | var onDrag = false; 67 | var _y = 0, 68 | top = 0; 69 | this.$e.body = $('body'); 70 | this.$e.box.on({ 71 | 'mousedown': function (e) { 72 | onDrag = true; 73 | that.$e.body.attr('onselectstart', 'return false'); 74 | that.$e.bar.addClass('active'); 75 | _y = e.pageY; 76 | top = parseFloat(that.$e.slider.css('top')); 77 | if (that.$e.bar.parents('#main').length > 0) { 78 | that.$e.body.children('aside').hide(); 79 | } 80 | } 81 | }); 82 | $(document).on({ 83 | 'mousemove': function (e) { 84 | if (onDrag) { 85 | that.scrollTo(top + e.pageY - _y); 86 | } 87 | }, 88 | 'mouseup': function () { 89 | onDrag = false; 90 | that.$e.body.removeAttr('onselectstart', 'return false'); 91 | that.$e.bar.removeClass('active'); 92 | that.$e.body.children('aside').show(); 93 | } 94 | }); 95 | }; 96 | 97 | Scroller.prototype._onWinResize = function () { 98 | if (isMobi()) { 99 | this.$e.inner.removeAttr('style').removeClass('on'); 100 | } else { 101 | this.$e.inner.css({ 102 | width: this.$e.container.width() + 30, 103 | paddingRight: 13 104 | }).addClass('on'); 105 | } 106 | }; 107 | 108 | //重设滑块大小 109 | Scroller.prototype._resize = function () { 110 | var that = this; 111 | this.data.containerH = this.$e.inner.height(); 112 | //当内容高度小于等于容器时,不显示滚动条 113 | if (this.data.contentH <= this.data.containerH) { 114 | this.data.contentH = this.data.containerH; 115 | this.$e.bar.addClass('off'); 116 | } else { 117 | this.$e.bar.removeClass('off'); 118 | } 119 | this.data.barH = this.$e.box.height(); 120 | this.data.sliderH = this.data.containerH / that.data.contentH * this.data.barH; 121 | this.$e.slider.height(this.data.sliderH); 122 | }; 123 | 124 | //重设滑块顶部距离 125 | Scroller.prototype._reScroll = function () { 126 | this.$e.slider.css('top', this.$e.inner.scrollTop() / this.data.contentH * this.data.barH); 127 | }; 128 | 129 | //滚动多少距离 130 | Scroller.prototype.scrollTo = function (num) { 131 | var barTop = num; 132 | barTop = barTop < 0 ? 0 : barTop; 133 | barTop = barTop + this.data.sliderH > this.data.barH ? this.data.barH - this.data.sliderH : barTop; 134 | this.$e.slider.css('top', barTop); 135 | this.$e.inner.scrollTop(barTop / this.data.barH * this.data.contentH); 136 | }; 137 | 138 | //检查高度 139 | Scroller.prototype.checkHeight = function(){ 140 | var that = this; 141 | this.data.contentH = 0; 142 | this.$e.inner.children('.scroller-content').each(function () { 143 | that.data.contentH += $(this).outerHeight(); 144 | }); 145 | //如果高度未改变不进行操作 146 | if (this.data.contentH == this.data.contentHLast) { 147 | return; 148 | } else { 149 | this.data.contentHLast = this.data.contentH; 150 | } 151 | this._resize(); 152 | this._reScroll(); 153 | }; 154 | 155 | //方法绑定 156 | $.extend($.fn, { 157 | scrollbar: function () { 158 | return this.each(function () { 159 | list.push(new Scroller(this)); 160 | }); 161 | } 162 | }); 163 | 164 | })(window, jQuery); -------------------------------------------------------------------------------- /www.chuyu.me/amWiki/js/amWiki.storage.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @desc amWiki Web端·本地缓存模块 3 | * @author Tevin 4 | */ 5 | 6 | ; 7 | (function (win) { 8 | 9 | 'use strict'; 10 | 11 | var tools = win.tools; 12 | var wikiPath = tools.simString(win.location.pathname.replace('/', '').replace(/\//g, '_')).toUpperCase(); 13 | var LOCAL_STORAGE_NAME = 'AMWikiDataBase@' + wikiPath; //本地数据localStorage键名 14 | 15 | /** 16 | * @class 创建一个本地存储管理对象 17 | */ 18 | var Storage = function () { 19 | this._db = null; //内存中的文库缓存 20 | this.elm = { 21 | $win: $(win), 22 | //更新全部缓存按钮 23 | $searchUpdate: $('#searchUpdate'), 24 | //缓存状态 25 | $cacheState: $('#cacheState'), 26 | //文档总数 27 | $cacheDocTotal: $('#cacheDocTotal'), 28 | //上次全部缓存更新时间 29 | $cacheLasttime: $('#cacheLasttime') 30 | }; 31 | this._bridgeLocalStorage('read'); 32 | this._bindCtrl(); 33 | }; 34 | 35 | //存取本地存储 36 | Storage.prototype._bridgeLocalStorage = function (type) { 37 | if (type == 'read') { 38 | var defaultStr = '{"documents":{},"lastBuild":0}'; 39 | this._db = JSON.parse(win.localStorage[LOCAL_STORAGE_NAME] || defaultStr); 40 | //转换旧名称 41 | if (typeof this._db.libraries != 'undefined') { 42 | this._db.documents = this._db.libraries; 43 | delete this._db.libraries; 44 | } 45 | } else if (type == 'save') { 46 | win.localStorage[LOCAL_STORAGE_NAME] = JSON.stringify(this._db); 47 | } 48 | }; 49 | 50 | //绑定操作 51 | Storage.prototype._bindCtrl = function () { 52 | var that = this; 53 | this.elm.$win.on('beforeunload', function () { 54 | that._bridgeLocalStorage('save'); 55 | }); 56 | }; 57 | 58 | //更新一篇文档,如果相同则不操作(对应内容不用重新渲染) 59 | Storage.prototype.update = function (uri, content) { 60 | var id = tools.simString(uri, 'short'); 61 | if (this._db.documents[id]) { 62 | if (this._db.documents[id].content == content) { 63 | return false; 64 | } else { 65 | this.saveDoc(uri, content, id); 66 | return true; 67 | } 68 | } else { 69 | this.saveDoc(uri, content, id); 70 | return true; 71 | } 72 | }; 73 | 74 | /** 75 | * @desc 保存一篇文档 76 | * @param uri {string} - 文档资源地址 77 | * @param content {string} - 文档内容 78 | * @param [id] {string} - 已经编码的文档地址,可选 79 | */ 80 | Storage.prototype.saveDoc = function (uri, content, id) { 81 | this.saveDocToDB(uri, content, id); 82 | this._bridgeLocalStorage('save'); 83 | this._changeSummary('sateOnly'); 84 | }; 85 | 86 | //将文档存储到内存 87 | Storage.prototype.saveDocToDB = function (uri, content, id) { 88 | if (typeof uri != 'string' && uri == '') { 89 | throw new Error('Error, uri must be a string!'); 90 | } 91 | if (typeof id == 'undefined') { 92 | id = tools.simString(uri, 'short'); 93 | } 94 | this._db.documents[id] = { 95 | id: id, 96 | uri: uri, 97 | content: content || '', 98 | timestamp: Date.now() 99 | }; 100 | this._changeSummary('sateOnly', 'prepare'); 101 | }; 102 | 103 | /** 104 | * @desc 读取一篇文档 105 | * @param uri {string} - 文档资源地址 106 | * @returns {string} - 文档内容 107 | */ 108 | Storage.prototype.read = function (uri) { 109 | var id = tools.simString(uri, 'short'); 110 | var article = ''; 111 | if (this._db.documents[id]) { 112 | article = this._db.documents[id].content; 113 | } 114 | return article; 115 | }; 116 | 117 | /** 118 | * @desc 删除一篇文档 119 | * @param uri {string} - 文档资源地址 120 | */ 121 | Storage.prototype.remove = function (uri) { 122 | var id = tools.simString(uri, 'short'); 123 | delete this._db.documents[id]; 124 | this._bridgeLocalStorage('save'); 125 | this._changeSummary('sateOnly'); 126 | }; 127 | 128 | //增涨文档打开数记录 129 | Storage.prototype.increaseOpenedCount = function (uri) { 130 | var id = tools.simString(uri, 'short'); 131 | //TODO: 待续...打开次数将一定程度影响排行 132 | }; 133 | 134 | /** 135 | * @desc 校对列表,清除失效文档 136 | * @param list {Array} - 由导航树偏平化生成的文档列表 137 | */ 138 | Storage.prototype.checkLibChange = function (list) { 139 | this._indexing = list; 140 | var documents = {}; 141 | var id = ''; 142 | for (var i = 0; i < list.length; i++) { 143 | id = tools.simString(list[i], 'short'); 144 | if (typeof this._db.documents[id] != 'undefined') { 145 | documents[id] = this._db.documents[id]; 146 | } 147 | } 148 | this._db.documents = documents; 149 | this._bridgeLocalStorage('save'); 150 | this._changeSummary(); 151 | }; 152 | 153 | //更新缓存摘要(位于搜素面板) 154 | Storage.prototype._changeSummary = function (stateOnly, prepare) { 155 | var libraryiesLong = 0; 156 | for (var p in this._db.documents) { 157 | if (this._db.documents.hasOwnProperty(p)) { 158 | libraryiesLong++; 159 | } 160 | } 161 | //如果是预先,百分数减1 162 | if (prepare == 'prepare') { 163 | this.elm.$cacheState.text(parseInt(libraryiesLong / this._indexing.length * 100 - 1) + '%'); 164 | } 165 | //非预先则正常 166 | else { 167 | this.elm.$cacheState.text(parseInt(libraryiesLong / this._indexing.length * 100) + '%'); 168 | } 169 | //如果不只是状态 170 | if (stateOnly != 'stateOnly') { 171 | this.elm.$cacheDocTotal.text(this._indexing.length); 172 | if (this._db.lastBuild) { 173 | this.elm.$cacheLasttime.text(win.tools.formatTime(this._db.lastBuild)); 174 | } else { 175 | this.elm.$cacheLasttime.text('0000-00-00 00:00:00'); 176 | } 177 | } 178 | }; 179 | 180 | //清除内存中的库列表 181 | Storage.prototype.clearLibraries = function () { 182 | this._db.documents = {}; 183 | this._changeSummary('sateOnly'); 184 | }; 185 | 186 | //完成本次缓存重建 187 | Storage.prototype.saveRebuild = function () { 188 | this._db.lastBuild = Date.now(); 189 | this._bridgeLocalStorage('save'); 190 | this._changeSummary(); 191 | }; 192 | 193 | //返回导航列表 194 | Storage.prototype.getIndexList = function () { 195 | return this._indexing; 196 | }; 197 | 198 | //获取当前缓存的所有文档 199 | Storage.prototype.getAllDocs = function () { 200 | return this._db.documents; 201 | }; 202 | 203 | //获取缓存最后重建时间 204 | Storage.prototype.getLastBuildTs = function () { 205 | return this._db.lastBuild; 206 | }; 207 | 208 | return win.AWStorage = Storage; 209 | 210 | })(window); -------------------------------------------------------------------------------- /www.chuyu.me/amWiki/js/amWiki.tools.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @desc amWiki Web端·工具集 3 | * @author Tevin 4 | */ 5 | 6 | ; 7 | (function (win) { 8 | 9 | 'use strict'; 10 | 11 | return win.tools = { 12 | 13 | /** 14 | * @desc 获取url参数 15 | * @param name {string} 16 | * @returns {string|null} - 获取的参数 17 | */ 18 | getURLParameter: function (name) { 19 | var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); 20 | var r = window.location.search.substr(1).match(reg); 21 | if (r != null) { 22 | return r[2]; 23 | } else { 24 | return null; 25 | } 26 | }, 27 | 28 | /** 29 | * @desc 转换字符中每个汉字为两个字符 30 | * @param str {string} - 要编码的字符串 31 | * @param [mod] {string} - 编码模式选择,可选,normal(默认)一个汉字对应两位字符,short一个汉字对应一位字符 32 | * @returns {string} - 编码后的字符串 33 | */ 34 | simString: function (str, mod) { 35 | mod = mod == 'short'; //短字符串 36 | var str2 = ''; 37 | var s = ''; 38 | var encodeURI = win.encodeURI; 39 | for (var i = 0; i < str.length; i++) { 40 | s = str.substr(i, 1); 41 | if (/[\u4e00-\u9fa5]/.test(s)) { 42 | encodeURI(s).split('%').forEach(function (item) { 43 | if (item == '') { 44 | s = []; 45 | } else { 46 | s.push(parseInt('0x' + item)); 47 | } 48 | }); 49 | if (mod) { 50 | str2 += (s[0] + s[1] + s[2]).toString(16).substr(-1, 1); 51 | } else { 52 | str2 += (s[0] + s[1] + s[2]).toString(16).substr(-2, 2); 53 | } 54 | } else { 55 | str2 += s; 56 | } 57 | } 58 | return str2; 59 | }, 60 | 61 | /** 62 | * @desc json格式化 63 | * @param str {string} - 需要格式化的json字符串 64 | * @returns {string} - 格式化后的json字符串 65 | */ 66 | formatJson: function (str) { 67 | var json = decodeURI(str.replace(/%([^0-9A-Z]{2})/g, '%25$1')); 68 | var reg = null, 69 | formatted = '', 70 | pad = 0, 71 | PADDING = ' '; 72 | var options = {}; 73 | // remove newline where '{' or '[' follows ':' 74 | options.newlineAfterColonIfBeforeBraceOrBracket = options.newlineAfterColonIfBeforeBraceOrBracket === true; 75 | // use a space after a colon 76 | options.spaceAfterColon = options.spaceAfterColon !== false; 77 | // begin formatting... 78 | if (typeof json !== 'string') { 79 | json = JSON.stringify(json); 80 | } else { 81 | json = JSON.parse(json); 82 | json = JSON.stringify(json); 83 | } 84 | // add newline before and after curly braces 85 | reg = /([\{\}])/g; 86 | json = json.replace(reg, '\r\n$1\r\n'); 87 | // add newline before and after square brackets 88 | reg = /([\[\]])/g; 89 | json = json.replace(reg, '\r\n$1\r\n'); 90 | // add newline after comma 91 | reg = /(\,)/g; 92 | json = json.replace(reg, '$1\r\n'); 93 | // remove multiple newlines 94 | reg = /(\r\n\r\n)/g; 95 | json = json.replace(reg, '\r\n'); 96 | // remove newlines before commas 97 | reg = /\r\n\,/g; 98 | json = json.replace(reg, ','); 99 | // optional formatting... 100 | if (!options.newlineAfterColonIfBeforeBraceOrBracket) { 101 | reg = /\:\r\n\{/g; 102 | json = json.replace(reg, ':{'); 103 | reg = /\:\r\n\[/g; 104 | json = json.replace(reg, ':['); 105 | } 106 | if (options.spaceAfterColon) { 107 | reg = /"\s*\:/g; 108 | json = json.replace(reg, '": '); 109 | } 110 | $.each(json.split('\r\n'), function (index, node) { 111 | var i = 0, 112 | indent = 0, 113 | padding = ''; 114 | if (node.match(/\{$/) || node.match(/\[$/)) { 115 | indent = 1; 116 | } else if (node.match(/\}/) || node.match(/\]/)) { 117 | if (pad !== 0) { 118 | pad -= 1; 119 | } 120 | } else { 121 | indent = 0; 122 | } 123 | for (i = 0; i < pad; i++) { 124 | padding += PADDING; 125 | } 126 | formatted += padding + node + '\r\n'; 127 | pad += indent; 128 | }); 129 | return formatted; 130 | }, 131 | 132 | /** 133 | * @desc 时间戳格式化为日期时间 134 | * @param timestamp {number} - 时间戳 135 | * @returns {string} - 日期时间 136 | */ 137 | formatTime: function (timestamp) { 138 | var time = new Date(timestamp); 139 | var year = time.getFullYear() + ''; 140 | var month = time.getMonth() + 1; 141 | month = month <= 9 ? '0' + month : month; 142 | var date = time.getDate(); 143 | date = date <= 9 ? '0' + date : date; 144 | var hour = time.getHours(); 145 | hour = hour <= 9 ? '0' + hour : hour; 146 | var minute = time.getMinutes(); 147 | minute = minute <= 9 ? '0' + minute : minute; 148 | var second = time.getSeconds(); 149 | second = second <= 9 ? '0' + second : second; 150 | return year + '-' + month + '-' + date + ' ' + hour + ':' + minute + ':' + second; 151 | } 152 | } 153 | 154 | })(window); -------------------------------------------------------------------------------- /www.chuyu.me/css/flexslider.min.css: -------------------------------------------------------------------------------- 1 | @CHARSET "UTF-8";ol,ul{list-style:none;}.flexslider{width:100%;}.flexslider .slides > li{display:none;}.flexslider .slides img{max-width:100%;display:block;margin:0 auto;}.slides:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0;}html[xmlns] .slides{display:block;}* html .slides{height:1%;}.no-js .slides > li:first-child{display:block;}.flexslider{position:relative;zoom:1;}.flexslider .slides{zoom:1;width:100%;}.flexslider .slides > li{position:relative;}.flex-caption{background:none;-ms-filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4C000000,endColorstr=#4C000000);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4C000000,endColorstr=#4C000000);zoom:1;}.flex-caption{width:96%;padding:2%;position:absolute;left:0;bottom:0;background:rgba(0,0,0,.3);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.3);font-size:14px;line-height:18px;}.flex-direction-nav li a{display:none;width:47px;height:80px;position:absolute;top:195px;cursor:pointer;text-indent:-9999px;}.flex-direction-nav li a.next{right:0;background:url("../images/bg_direction_nav.png") no-repeat scroll right top transparent;}.flex-direction-nav li a.next:hover{}.flex-direction-nav li a.next:active{background:url("../images/bg_direction_nav.png") no-repeat scroll right bottom transparent;}.flex-direction-nav li a.prev{left:0;background:url("../images/bg_direction_nav.png") no-repeat scroll left top transparent;}.flex-direction-nav li a.prev:hover{}.flex-direction-nav li a.prev:active{background:url("../images/bg_direction_nav.png") no-repeat scroll left bottom transparent;}.flex-direction-nav li a.disabled{opacity:.3;filter:alpha(opacity=30);cursor:default;}.flex-control-nav{position:absolute;bottom:0;}.flex-control-nav li{display:inline-block;zoom:1;*display:inline;margin-left:10px;margin-bottom:6px;}.flex-control-nav li a{display:block;width:10px;height:10px;background:url("../images/bg_control_nav.png") no-repeat scroll 0 0 transparent;_background:url("../images/bg_control_nav-0.png") no-repeat scroll 0 0 transparent;cursor:pointer;text-indent:-9999px;}.flex-control-nav li a:hover{background-position:0 -10px;_background:url("../images/bg_control_nav-1.png") no-repeat scroll 0 0 transparent;}.flex-control-nav li a.active{background-position:0 -20px;_background:url("../images/bg_control_nav-2.png") no-repeat scroll 0 0 transparent;cursor:default;} -------------------------------------------------------------------------------- /www.chuyu.me/css/index-v11.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | 3 | @media only screen and (min-width: 768px) and (max-width: 1055px),only screen and (max-width: 767px) { 4 | #protect .sizer,#slow .sizer,#extras .sizer,#passwords .sizer { 5 | /* min-height: auto; */ 6 | padding: 60px 0 7 | } 8 | } 9 | 10 | #top { 11 | } 12 | 13 | #top .absolute-center { 14 | text-align: center 15 | } 16 | 17 | #top h1 { 18 | padding: 0 0 55px 19 | } 20 | 21 | #top p.subh1 { 22 | padding: 0 0 60px 23 | } 24 | 25 | #top a { 26 | text-decoration: none; 27 | display: block 28 | } 29 | 30 | #top .butt-holder .button { 31 | display: inline-block 32 | } 33 | 34 | #top .butt-holder .button span { 35 | } 36 | 37 | #top #logo-win10 p { 38 | padding: 30px 0 50px 0; 39 | font-size: 24px 40 | } 41 | 42 | #top [class*="span"] { 43 | padding: 0 44 | } 45 | 46 | #top [class*="span"] a { 47 | padding: 30px 0 0 0 48 | } 49 | 50 | #top [class*="span"] p { 51 | max-width: 280px; 52 | margin: 0 auto 53 | } 54 | 55 | #top [class*="span"] p span { 56 | font-weight: 700; 57 | font-size: 22px; 58 | display: block 59 | }[class*="mod-ar"] #top,[class*="mod-en-id"] #top,[class*="mod-en-in"] #top,[class*="mod-en-my"] #top,[class*="mod-en-ph"] #top,[class*="mod-en-sg"] #top,[class*="mod-fa-ir"] #top,[class*="mod-he-il"] #top,[class*="mod-id-id"] #top,[class*="mod-ja-jp"] #top,[class*="mod-ko-kr"] #top,[class*="mod-ms-my"] #top,[class*="mod-ru-ru"] #top,[class*="mod-ru-kz"] #top,[class*="mod-th-th"] #top,[class*="mod-tr-tr"] #top,[class*="mod-zh"] #top { 60 | } 61 | 62 | #features .sizer { 63 | padding-bottom: 120px 64 | } 65 | 66 | #features p { 67 | color: #767683 68 | } 69 | 70 | #features img { 71 | display: block; 72 | margin: 0 auto; 73 | padding: 0 0 40px 0 74 | } 75 | 76 | [class*="mod-fr"] .tab-com .button.twoline SPAN,[class*="mod-de"] .tab-com .button.twoline SPAN,[class*="mod-es"] .tab-com .button.twoline SPAN,[class*="mod-ru"] .tab-com .button.twoline SPAN { 77 | display: -webkit-box; 78 | display: -webkit-flex; 79 | display: -moz-box; 80 | display: -ms-flexbox; 81 | display: flex; 82 | -webkit-box-pack: center; 83 | -webkit-justify-content: center; 84 | -moz-box-pack: center; 85 | -ms-flex-pack: center; 86 | justify-content: center; 87 | -webkit-box-orient: vertical; 88 | -webkit-box-direction: normal; 89 | -webkit-flex-direction: column; 90 | -moz-box-orient: vertical; 91 | -moz-box-direction: normal; 92 | -ms-flex-direction: column; 93 | flex-direction: column; 94 | height: 67px 95 | }[class*="mod-ar"] #top a,[class*="mod-he"] #top a,[class*="mod-ar"] #top p,[class*="mod-he"] #top p,[class*="mod-ar"] #top span,[class*="mod-he"] #top span { 96 | text-align: center 97 | }[class*="mod-ar"] #extras .button,[class*="mod-he"] #extras .button { 98 | float: right 99 | }[class*="mod-de"] #top h1 { 100 | padding: 0 95px 55px 95px 101 | } 102 | 103 | @media only screen and (min-width: 768px) and (max-width: 1055px),only screen and (max-width: 767px) { 104 | [ class*="mod-de"] #top h1 { 105 | padding: 0 0 55px 0 106 | } 107 | } 108 | 109 | #top.bg-index-win-768 { 110 | /*background-image: url("http://www.deskier.com/d/pc/103/960x600/1354775082617.jpg")*/ 111 | background-color: rgb(255,127,39); 112 | } 113 | 114 | .button.thin.large SPAN { 115 | font-size: 16px; 116 | -webkit-box-shadow: 0 0 0 1px #FFF inset; 117 | -moz-box-shadow: 0 0 0 1px #FFF inset; 118 | box-shadow: 0 0 0 1px #FFF inset 119 | } 120 | -------------------------------------------------------------------------------- /www.chuyu.me/css/index-v11.min.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8";@media only screen and (min-width: 768px) and (max-width: 1055px),only screen and (max-width: 767px){#protect .sizer,#slow .sizer,#extras .sizer,#passwords .sizer{padding:60px 0}}#top .absolute-center{text-align:center}#top h1{padding:0 0 55px}#top p.subh1{padding:0 0 60px}#top a{text-decoration:none;display:block}#top .butt-holder .button{display:inline-block}#top #logo-win10 p{padding:30px 0 50px;font-size:24px}#top [class*="span"]{padding:0}#top [class*="span"] a{padding:30px 0 0}#top [class*="span"] p{max-width:280px;margin:0 auto}#top [class*="span"] p span{font-weight:700;font-size:22px;display:block}#features .sizer{padding-bottom:120px}#features p{color:#767683}#features img{display:block;margin:0 auto;padding:0 0 40px}[class*="mod-fr"] .tab-com .button.twoline SPAN,[class*="mod-de"] .tab-com .button.twoline SPAN,[class*="mod-es"] .tab-com .button.twoline SPAN,[class*="mod-ru"] .tab-com .button.twoline SPAN{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:67px}[class*="mod-ar"] #top a,[class*="mod-he"] #top a,[class*="mod-ar"] #top p,[class*="mod-he"] #top p,[class*="mod-ar"] #top span,[class*="mod-he"] #top span{text-align:center}[class*="mod-ar"] #extras .button,[class*="mod-he"] #extras .button{float:right}[class*="mod-de"] #top h1{padding:0 95px 55px}@media only screen and (min-width: 768px) and (max-width: 1055px),only screen and (max-width: 767px){[ class*="mod-de"] #top h1{padding:0 0 55px}}#top.bg-index-win-768{background-color:#ff7f27}.button.thin.large SPAN{font-size:16px;-webkit-box-shadow:0 0 0 1px #FFF inset;-moz-box-shadow:0 0 0 1px #FFF inset;box-shadow:0 0 0 1px #FFF inset} -------------------------------------------------------------------------------- /www.chuyu.me/css/local.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8";/*# sourceMappingURL=local.css.map */ 2 | #menu .home UL.sub-block:nth-child(1) { 3 | width: 440px; 4 | } 5 | #menu .home UL.sub-block:nth-child(1) LI:nth-child(8), 6 | #menu .home UL.sub-block:nth-child(1) LI:nth-child(9), 7 | #menu .home UL.sub-block:nth-child(1) LI:nth-child(10), 8 | #menu .home UL.sub-block:nth-child(1) LI:nth-child(11) { 9 | left: 240px; 10 | } 11 | -------------------------------------------------------------------------------- /www.chuyu.me/css/local.min.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8";#menu .home UL.sub-block:nth-child(1){width: 440px}#menu .home UL.sub-block:nth-child(1) LI:nth-child(8),#menu .home UL.sub-block:nth-child(1) LI:nth-child(9),#menu .home UL.sub-block:nth-child(1) LI:nth-child(10),#menu .home UL.sub-block:nth-child(1) LI:nth-child(11){left:240px} 2 | -------------------------------------------------------------------------------- /www.chuyu.me/css/templace.css: -------------------------------------------------------------------------------- 1 | * { 2 | padding: 0; 3 | margin: 0; 4 | } 5 | html { 6 | overflow-y: scroll; 7 | } 8 | body { 9 | font-size: 12px; 10 | font-family: 'Hiragino Sans GB', STHeiti, 'Microsoft Yahei', '黑体', sans-serif !important; 11 | line-height: 1.8em; 12 | color: #333; 13 | background-color: #fff; 14 | } 15 | li, ol, ul { 16 | list-style-position: inside; 17 | } 18 | a { 19 | hide-focus: expression(this.hideFocus=true); 20 | outline: 0; 21 | color: #1A92DE; 22 | } 23 | a: link, a: visited { 24 | text-decoration: none; 25 | font-weight: 400; 26 | } 27 | a: hover { 28 | text-decoration: underline; 29 | font-weight: 400; 30 | } 31 | .green { 32 | color: #6DA80D; 33 | } 34 | #page_bg { 35 | background: #edeeef; 36 | } 37 | #wrapper { 38 | margin-left: auto; 39 | margin-right: auto; 40 | min-width: 1024px; 41 | } 42 | .componentheading { 43 | width: 100%; 44 | } 45 | .componentheading h3 { 46 | font-size: 24px; 47 | font-weight: 400; 48 | height: 34px; 49 | line-height: 34px; 50 | padding-left: 35px; 51 | margin-bottom: 10px; 52 | } 53 | .componentheading h3 a { 54 | color: #5A5A5A; 55 | } 56 | #topcontrol a { 57 | background: url(../images/up.png?v=2) no-repeat scroll 0 0 transparent; 58 | display: block; 59 | width: 80px; 60 | height: 60px; 61 | outline: medium none; 62 | } 63 | #topcontrol a: hover { 64 | background-position: 0 -60px; 65 | } 66 | .clr { 67 | clear: both; 68 | overflow: hidden; 69 | height: 0; 70 | } 71 | #content { 72 | position: relative; 73 | background-color: #fff; 74 | z-index: 0; 75 | } 76 | #maincolumn, #maincolumn_full { 77 | position: relative; 78 | } 79 | #maincolumn { 80 | float: left; 81 | width: 765px; 82 | z-index: 5; 83 | } 84 | #maincolumn_full { 85 | width: 100%; 86 | } 87 | .component-sitemap { 88 | line-height: 2.5em; 89 | margin-top: 65px; 90 | margin-bottom: 65px; 91 | width: 100%; 92 | } 93 | .component-sitemap .contentpaneopen { 94 | padding-left: 35px; 95 | } 96 | .component-sitemap h2.menutitle { 97 | font-size: 16px; 98 | font-weight: 400; 99 | height: 34px; 100 | line-height: 34px; 101 | padding-left: 24px; 102 | } 103 | .component-sitemap ul { 104 | padding-left: 40px; 105 | } 106 | .component-sitemap li a { 107 | color: #5A5A5A; 108 | } 109 | .component-changelog { 110 | width: 100%; 111 | line-height: 2em; 112 | margin-top: 65px; 113 | margin-bottom: 65px; 114 | } 115 | .history { 116 | background: url(../images/line04.gif) repeat-y 187px 0; 117 | overflow: hidden; 118 | position: relative; 119 | margin-top: 50px; 120 | } 121 | .history-date h2 { 122 | background: url(../images/icon06.gif) #fff no-repeat 158px 0; 123 | height: 59px; 124 | font-size: 25px; 125 | font-weight: 400; 126 | padding-left: 45px; 127 | margin-top: 60px; 128 | cursor: pointer; 129 | } 130 | .history-date h2.first { 131 | width: 935px; 132 | z-index: 99; 133 | margin-top: 0; 134 | } 135 | .history-date h2 a { 136 | color: #0bf; 137 | display: inline-block; 138 | zoom: 1; 139 | background: url(../images/icon08.gif) no-repeat right 50%; 140 | padding-right: 17px; 141 | margin: 21px 97px 0 0; 142 | } 143 | .history-date h2 a: hover { 144 | text-decoration: none; 145 | } 146 | .history-date h2 img { 147 | vertical-align: -5px; 148 | } 149 | .history-date ul.first { 150 | display: block; 151 | } 152 | .history-date ul { 153 | display: none; 154 | } 155 | .history-date ul li { 156 | background: url(../images/icon07.gif) no-repeat 180px 50px; 157 | padding: 45px 0 0; 158 | zoom: 1; 159 | } 160 | .history-date ul li.last { 161 | padding-bottom: 0; 162 | } 163 | .history-date ul li: after { 164 | content: " "; 165 | display: block; 166 | height: 0; 167 | clear: both; 168 | visibility: hidden; 169 | } 170 | .history-date ul li h3 { 171 | float: left; 172 | width: 168px; 173 | text-align: right; 174 | padding-right: 19px; 175 | color: #c3c3c3; 176 | font: 400 18px/16px Arial; 177 | cursor: pointer; 178 | margin-top: 4px; 179 | } 180 | .history-date ul li h3 span { 181 | display: block; 182 | color: #d0d0d0; 183 | font-size: 12px; 184 | } 185 | .history-date ul li dl { 186 | float: left; 187 | padding-left: 41px; 188 | width: 732px; 189 | } 190 | .history-date ul li dl dt { 191 | font-size: 18px; 192 | line-height: 24px; 193 | cursor: pointer; 194 | } 195 | .history-date ul li dl dd { 196 | font-size: 12px; 197 | padding-top: 20px; 198 | color: #5A5A5A; 199 | } 200 | .history-date ul li.green h3 { 201 | color: #1db702; 202 | } 203 | .history-date ul li.green h3 span { 204 | color: #a8dda3; 205 | } 206 | .history-date ul li.green dl dd img { 207 | float: left; 208 | } 209 | .history-date ul li.green dl dd p { 210 | overflow: hidden; 211 | zoom: 1; 212 | line-height: 21px; 213 | color: #787878; 214 | } 215 | .history-date h2.first .more-history { 216 | font-size: 16px; 217 | background: 0 0; 218 | margin-left: 30px; 219 | } 220 | .history-date h2.first .more-history: hover { 221 | text-decoration: underline; 222 | } 223 | .footer { 224 | height: 149px; 225 | padding-top: 18px; 226 | color: #adafba; 227 | background: #2c2f38; 228 | text-align: center; 229 | } 230 | .content { 231 | padding: 50px 0; 232 | min-height: 720px; 233 | } 234 | -------------------------------------------------------------------------------- /www.chuyu.me/css/template.min.css: -------------------------------------------------------------------------------- 1 | *{padding:0;margin:0}html{overflow-y:scroll}body{font-size:12px;font-family:'Hiragino Sans GB',STHeiti,'Microsoft Yahei','黑体',sans-serif !important;line-height:1.8em;color:#333;background-color:#fff}li,ol,ul{list-style-position:inside}a{hide-focus:expression(this.hideFocus=true);outline:0;color:#1A92DE}a:link,a:visited{text-decoration:none;font-weight:400}a:hover{text-decoration:underline;font-weight:400}.green{color:#6DA80D}#page_bg{background:#edeeef}#wrapper{margin-left:auto;margin-right:auto;min-width:1024px}.componentheading{width:100%}.componentheading h3{font-size:24px;font-weight:400;height:34px;line-height:34px;padding-left:35px;margin-bottom:10px}.componentheading h3 a{color:#5A5A5A}#topcontrol a{background:url(../images/up.png?v=2) no-repeat scroll 0 0 transparent;display:block;width:80px;height:60px;outline:medium none}#topcontrol a:hover{background-position:0 -60px}.clr{clear:both;overflow:hidden;height:0}#content{position:relative;background-color:#fff;z-index:0}#maincolumn,#maincolumn_full{position:relative}#maincolumn{float:left;width:765px;z-index:5}#maincolumn_full{width:100%}.component-sitemap{line-height:2.5em;margin-top:65px;margin-bottom:65px;width:100%}.component-sitemap .contentpaneopen{padding-left:35px}.component-sitemap h2.menutitle{font-size:16px;font-weight:400;height:34px;line-height:34px;padding-left:24px}.component-sitemap ul{padding-left:40px}.component-sitemap li a{color:#5A5A5A}.component-changelog{width:100%;line-height:2em;margin-top:65px;margin-bottom:65px}.history{background:url(../images/line04.gif) repeat-y 187px 0;overflow:hidden;position:relative;margin-top:50px}.history-date h2{background:url(../images/icon06.gif) #fff no-repeat 158px 0;height:59px;font-size:25px;font-weight:400;padding-left:45px;margin-top:60px;cursor:pointer}.history-date h2.first{width:935px;z-index:99;margin-top:0}.history-date h2 a{color:#0bf;display:inline-block;zoom:1;background:url(../images/icon08.gif) no-repeat right 50%;padding-right:17px;margin:21px 97px 0 0}.history-date h2 a:hover{text-decoration:none}.history-date h2 img{vertical-align:-5px}.history-date ul.first{display:block}.history-date ul{display:none}.history-date ul li{background:url(../images/icon07.gif) no-repeat 180px 50px;padding:45px 0 0;zoom:1}.history-date ul li.last{padding-bottom:0}.history-date ul li:after{content:" ";display:block;height:0;clear:both;visibility:hidden}.history-date ul li h3{float:left;width:168px;text-align:right;padding-right:19px;color:#c3c3c3;font:400 18px/16px Arial;cursor:pointer;margin-top:4px}.history-date ul li h3 span{display:block;color:#d0d0d0;font-size:12px}.history-date ul li dl{float:left;padding-left:41px;width:732px}.history-date ul li dl dt{font-size:18px;line-height:24px;cursor:pointer}.history-date ul li dl dd{font-size:12px;padding-top:20px;color:#5A5A5A}.history-date ul li.green h3{color:#1db702}.history-date ul li.green h3 span{color:#a8dda3}.history-date ul li.green dl dd img{float:left}.history-date ul li.green dl dd p{overflow:hidden;zoom:1;line-height:21px;color:#787878}.history-date h2.first .more-history{font-size:16px;background:0 0;margin-left:30px}.history-date h2.first .more-history:hover{text-decoration:underline}.footer{height:149px;padding-top:18px;color:#adafba;background:#2c2f38;text-align:center}.content{padding:50px 0;min-height:720px} 2 | -------------------------------------------------------------------------------- /www.chuyu.me/de.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /www.chuyu.me/en.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /www.chuyu.me/en/images/ApplyUUPESD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/en/images/ApplyUUPESD.png -------------------------------------------------------------------------------- /www.chuyu.me/en/images/ApplyWIMBoot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/en/images/ApplyWIMBoot.png -------------------------------------------------------------------------------- /www.chuyu.me/en/images/BackupImage-WimPath.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/en/images/BackupImage-WimPath.png -------------------------------------------------------------------------------- /www.chuyu.me/en/images/BackupImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/en/images/BackupImage.png -------------------------------------------------------------------------------- /www.chuyu.me/en/images/CleanupUI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/en/images/CleanupUI.png -------------------------------------------------------------------------------- /www.chuyu.me/en/images/CompactOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/en/images/CompactOS.png -------------------------------------------------------------------------------- /www.chuyu.me/en/images/ExportWIMBoot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/en/images/ExportWIMBoot.png -------------------------------------------------------------------------------- /www.chuyu.me/en/images/ISOInstallOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/en/images/ISOInstallOS.png -------------------------------------------------------------------------------- /www.chuyu.me/en/images/InstallUpdates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/en/images/InstallUpdates.png -------------------------------------------------------------------------------- /www.chuyu.me/en/images/MainUI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/en/images/MainUI.png -------------------------------------------------------------------------------- /www.chuyu.me/en/images/OpenSession.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/en/images/OpenSession.png -------------------------------------------------------------------------------- /www.chuyu.me/en/images/RecoveryImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/en/images/RecoveryImage.png -------------------------------------------------------------------------------- /www.chuyu.me/en/images/SaveISO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/en/images/SaveISO.png -------------------------------------------------------------------------------- /www.chuyu.me/en/images/ScanUpdates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/en/images/ScanUpdates.png -------------------------------------------------------------------------------- /www.chuyu.me/en/library/$navigation.md: -------------------------------------------------------------------------------- 1 |  2 | #### [About Dism++](?file=start.md "Back") 3 | 4 | ##### 1. Quick Start Guide 5 | - [1.1 快速入门](?file=Quickstart.md "快速入门") 6 | - [1.2 Dism转Dism++入门](?file=Dism2Dism++.md "Dism转Dism++入门") 7 | 8 | ##### 2. Reference 9 | - [2.1. Dism++术语](?file=reference/术语.md "Dism++术语") 10 | - [2.2. Dism++隐藏设置](?file=reference/隐藏功能.md "Dism++隐藏设置") 11 | - [2.3. 自定义规则](?file=reference/自定义规则.md "自定义规则") 12 | - [2.3. 规则结构参考](?file=reference/规则结构参考.md "规则结构参考") 13 | 14 | ##### 3. Best Practice 15 | - [3.1. 使用Dism++安装系统](?file=bestpractice/使用Dism++安装系统.md "使用Dism++安装系统") 16 | - [3.2. 给ISO离线集成补丁](?file=bestpractice/给ISO离线集成补丁.md "给ISO离线集成补丁") 17 | 18 | -------------------------------------------------------------------------------- /www.chuyu.me/en/library/Quickstart.md: -------------------------------------------------------------------------------- 1 | # Quick start 2 | The core functionality of Dism++ is to clean-up and updates the Windows installation, so you may not experience the full potential of the program until you have installed some updates. 3 | 4 | ## User Interface 5 | As shown below, you may switch between various systems with the tabs above should you have multiple operating systems installed or mounted. On the left you may find and use various features of the program. For average users, they may be interested in the `Disk Clean-up` feature. 6 | 7 | ![MainUI](./images/MainUI.png) 8 | 9 | ## Disk Clean-up 10 |
11 | >We do not recommend cleaning your system too frequently, especially for users with an SSD! We recommend cleaning every month or so is enough. 12 | 13 | ![CleanupUI](./images/CleanupUI.png) 14 | 15 |
16 | After starting up the software, click `Disk Clean-up`, and you will see this interface. Next, select the items you wish to clean-up or remove; click `Scan` to estimate the amount of the space each item could potentially freeup. Alternatively, you may also click `CleanUp` for an immediate delete without an estimate. Ultimately, if you have a better idea for cleaning, click `Help - Feedback`, and submit your rules. 17 | 18 |
19 | >Warning: Risky items will be labeled organge. Additionally, removing some of the items may cause unwanted side-effects. Once a risky item is selected, an alert box will pop up to confirm clean-up. Please double check before proceeding! 20 | 21 | ## System Backup 22 | As a saying goes, forewarned is forearmed. Now Dism++ can back up the current system to a WIM and ESD file without booting into Windows PE. Simply select the current system, and click `Recovery - System Backup` on the menu. 23 | 24 | ![BackupImage](./images/BackupImage.png) 25 | 26 | ![BackupImage-WimPath](./images/BackupImage-WimPath.png) 27 |
Then enter the path to store the image. Finally, just click `OK`. (You can change the image name by double-click the Value items.) 28 | >If the WIM file already exists, the program will automatically increment to the existing image for an incremental backup. 29 | 30 | In order to restore the system in event that your system could not be started, you need to click `Options - More settings` on the menu, then check `Integrated BCD boot menu`. After this, there will be a Dism++ item in the BCD boot menu. You may restore your system there if necessary. 31 | 32 | ## System Restore 33 | When the system goes wrong, you can use your existing backup image to restore the system, swiftly repairing the environment. In order to reduce the difficulty of the recovery process, the program supports the hot restore mode, which means users can store the system without starting a PE. If your system goes wrong, just click `Recovery - System Restore` on the menu. Then select the image. Finally, just click `OK` as shown below. 34 | 35 | ![RecoveryImage](./images/RecoveryImage.png) 36 | 37 | >Tips: If your system can not be started, and you had checked `Integrated BCD boot menu`, you may restore your system by selecting Dism++ in BCD boot menu or simply boot into Windows PE and perform the steps above 38 | 39 |
This concludes the quick-start guide. Users who want to research further can refer to the follow-up documents. Have a good time! -------------------------------------------------------------------------------- /www.chuyu.me/en/library/bestpractice/使用Dism++安装系统.md: -------------------------------------------------------------------------------- 1 | # 使用Dism++安装系统 2 | 安装系统是一个简单而又复杂的活。有的仅仅为了安装系统,先把ESD转为ISO。有的因为安装器不支持ESD,而转换为WIM。还有的在解压ISO……这根本原因是人们很多时候难以灵活运用现有的工具。君子生非异也,善假于物也。本文将通过一些实例,帮助大家驾驭Dism++。 3 | 4 | ## 前言 5 | ### 启动Dism++ RE模式 6 | 大家可能听说过PE,没见过RE。其实RE可以说跟PE是一样的,也就是说PE能做什么,RE也能做什么。另外Vista以后的系统都自带RE,所以我们平常的工作完全可以使用RE来解决,无需使用PE。 7 | 8 | 是不是心动了?Dism++为了简化RE使用流程,特意引入了RE模式。其作用就是重启系统,然后启动RE,在启动Dism++。 9 | 10 | 使用方法也很简单,在菜单点击 `恢复功能 - 在RE中运行`。首次启用需要配置一些设置,操作完成后重启电脑就可以了。 11 | 12 | > 在RE模式中,Dism++可以格式化系统盘。如果需要全新安装系统,又不想使用PE,可以使用此模式。 13 | 14 | ### Dism++添加引导支持情况 15 | #### 传统BIOS以及UEFI支持情况 16 | Dism++完全支持标准的传统BIOS以及UEFI引导。但是要看清楚,是支持标准的引导,一些非标准的是不支持的。典型的UEFI启动的系统使用MBR磁盘是不支持的。 17 | 18 | 这是因为Dism++有自动检测逻辑,发现系统盘是MBR格式,那么添加引导时自动按照传统BIOS启动方式进行处理。反之,发现GPT分区则安装UEFI方式处理。 19 | 20 | 因此那些系统盘是MBR却要用UEFI启动,或者系统盘是GPT却要上传统BIOS启动。这些情况,Dism++的处理结果是不能让人满意的,这些用户建议手动配置引导。 21 | #### 多硬盘引导支持情况 22 | Dism++完美支持多硬盘引导。可以为多个硬盘设置独立引导,也可以使用共享引导。但是多硬盘引导设置往往需要人工干预,因为程序并不知道你需要独立引导,还是共享引导。 23 | 24 | Dism++默认使用独立引导模式,需要调整为共享引导的用户,在添加引导时,请点击`更多`,然后手动调整。 25 | 26 | #### 隐藏启动分区支持情况 27 | Dism++完美支持隐藏启动分区,用户无需手动分配盘符。添加引导信息时,程序能直接操作隐藏的启动分区,无需分配盘符。特别是UEFI用户,放马过来吧。 28 | 29 | #### VHD/VHDX启动支持情况 30 | Dism++完美支持配置VHD启动,程序检测到系统盘是VHD时,会自动转向到VHD模式,无需人工干预。不过,值得注意的是Windows 7旗舰版才支持VHD启动。另外只有Windows 8以上系统才能使用VHDX,到时搞了半天…… 31 | 32 | 最后有要扯到 传统BIOS以及UEFI支持情况。VHD的分区类型跟启动盘的分区类型必须一致,不然Dism++没法正常配置引导。比如VHD是GPT那么启动盘也需要是GPT,反之亦然。 33 | 34 | ## 从ISO安装系统 35 | ISO是最常见的系统载体,为此Dism++提供了直接的ISO支持。你可以直接使用ISO安装系统,无需挂载ISO或者解压ISO。 36 | > Dism++内置了文件虚拟化技术,可以将文件流虚拟为一个文件。因此Dism++可以直接释放ISO里的install.wim。 37 | 38 | 使用方法也很简单,在菜单中,点击文件 - 释放映像 即可。记得勾选 `添加引导`。`格式化`这个选项可以根据自己的需要使用,如果勾选此选项,会把的选择的系统盘进行清空。 39 | 40 | ![ISOInstallOS](./images/ISOInstallOS.png) 41 | 42 | 上图中,将ISO中的系统安装到 D盘,同时对D盘进行格式化。 43 | 44 | 点击目标映像右侧的下拉框,可以切换系统,确认无误后点击确定即可。 45 | 46 | > 如果你需要格式化当前系统盘,则上述操作必须在RE或者PE等其他系统中进行。 47 | 48 | 49 | ## 从ESD(包括加密ESD以及UUP ESD)安装系统 50 | 从Windows 8以后,微软会定期从Windows Update推送ESD。而ESD中就包含了安装系统所必需的文件。我们可以直接使用ESD进行系统安装。哪怕这个ESD是加密的或者UUP分段ESD。 51 | > Dism++内置了文件虚拟化技术,加密ESD会在内存中解密,然后再释放系统,此过程并不会修改原始ESD文件。 52 | 53 | 使用方法也很简单,在菜单中,点击文件 - 释放映像 即可。记得勾选 `添加引导`。`格式化`这个选项可以根据自己的需要使用,如果勾选此选项,会把的选择的系统盘进行清空。 54 | > 释放UUP ESD时,可以选择UUP文件夹中的ActionList.xml(推荐),也可以直接选择顶级ESD(比如Professional_zh-cn.esd)。 55 | 56 | ![ApplyUUPESD](./images/ApplyUUPESD.png) 57 | 58 | 如上图,跟ISO释放稍微不同的是,目标映像需要选择操作系统,如上图所示目标映像,千万别傻傻的选择Windows Setup。 59 | 60 | 点击目标映像右侧的下拉框,可以切换系统,确认无误后点击确定即可。 61 | 62 | > 如果你需要格式化当前系统盘,则上述操作必须在RE或者PE等其他系统中进行。 63 | 64 | ## 使用Compact技术安装系统 65 | Compact是Windows 10新引入的压缩启动技术。一般减少1/3的空间占用,同时几乎不影响到IO性能。 66 | 67 | 在Dism++中,你可以使用Compact技术安装Windows 7以上所有系统。程序将自动配置驱动并解压核心启动文件。 68 | 69 | > 需要注意的是,要使用Compact技术,Host系统必须是Windows 7或者更高。另外在Windows 7中默认不会加载WofAdk驱动。Win7用户使用前,请先在 选项 - 详细设置。勾选加载WofADK驱动,然后点击确定。 70 | 71 | Comacpt技术使用也非常简单,在释放映像时(支持WIM、SWM、ESD、UUP ESD以及ISO),勾选Compact,添加引导即可。如下图所示: 72 | 73 | ![CompactOS](./images/CompactOS.png) 74 | 75 | 操作完成后,重启系统即可启动Compact技术安装的系统了。 76 | 77 | ## 使用WIMBoot技术安装系统 78 | WIMBoot技术可以减少更多的空间占用,同时充分的利用了备份区,而且由于文件集中存放,往往可以提供更佳的IO性能。看似一切很美好,但是有个致命问题,长期使用WIMBoot会导致系统盘体积越来越大。最后表现比Compact还渣…… 79 | > WIMBoot技术是Compact的前身,由于有个体积越来越大问题,所以被抛弃使用。Dism++建议优先考虑使用Compact。 80 | 81 | 在Dism++中,你可以使用WIMBoot技术安装Windows 7以上所有系统。程序将自动配置驱动并解压核心启动文件。 82 | 83 | > 需要注意的是,要使用WIMBoot技术,Host系统必须是Windows 7或者更高。另外在Windows 7中默认不会加载WofAdk驱动。Win7用户使用前,请先在 选项 - 详细设置。勾选加载WofADK驱动,然后点击确定。 84 | 85 | WIMBoot技术使用略微比Compact麻烦一点,首先你需要准备一个WIMBoot压缩类型的wim文件。 86 | > PS: 虽然Dism++也支持快速压缩以及最大压缩的wim文件以WIMBoot方式启动,但是Dism++建议还是转换到WIMBoot压缩然后继续,以获得更加性能。 87 | 88 | ![ExportWIMBoot](./images/ExportWIMBoot.png) 89 | 90 | 如上图所示,我们把ISO里面的Windows 7旗舰版,选择WIMBoot压缩,然后导出到`G:\Win7 WIMBoot.wim`。 91 | 92 | 转换完成后,在使用`文件 - 释放映像`,并勾选WIMBoot即可,如下图所示: 93 | 94 | ![ApplyWIMBoot](./images/ApplyWIMBoot.png) 95 | 96 | 把刚才得到的`G:\Win7 WIMBoot.wim`,使用WIMBoot技术,释放到D盘,格式化并添加引导。 97 | 98 | OK,现在大功告成,操作完成后,重启就能看到WIMBoot启动的系统了。 -------------------------------------------------------------------------------- /www.chuyu.me/en/library/bestpractice/给ISO离线集成补丁.md: -------------------------------------------------------------------------------- 1 | # 给ISO离线集成补丁 2 | 大家是否厌倦了每次安装补丁后又要打一堆补丁的感觉?使用微软的Dism打补丁又需要自己收集补丁,而且每个月有新补丁,还有老补丁被取代。现在Dism++重建了Windows Update,直接从WSUS服务器中导出补丁数据库,全自动获取最新更新,自动剔除过期老补丁,在通过CBS判断系统是否需要此更新。下面来看看怎么使用吧。 3 | 4 | ## 解压ISO 5 | 为了处理ISO里面的install.wim。我们先把ISO文件解压到硬盘。这一步,你可以使用压缩软件,比如7z等,右键解压即可。假设我们解压到`D:\Temp`。 6 | 7 | ## 挂载install.wim 8 | 为了让Dism++能识别到系统,我们需要挂载install.wim。`挂载映像`非常简单,在菜单点击 `文件 - 挂载映像`。 9 | 10 | 映像文件路径我们设置为`D:\Temp\Sources\install.wim`。 11 | 挂载路径我们设置为`D:\Mount`(必须存在)。 12 | 如果你需要调整映像,则执行点击目标映像,切换需要挂载的系统。(比如我这里选择了Win7旗舰版) 13 | 14 | 最后点击确定 15 | 16 | ## 扫描并安装更新 17 | 点击`打开会话`,然后点击`更新管理`,在点击`扫描`,扫描完成后程序会列出所有可以安装的更新,选中需要的更新点点击安装即可 18 | 温馨提示:Dism++会把更新缓存在 程序目录的 "Config\\UpdateCache"文件夹,以后安装时Dism++将直接使用上次的缓存。 19 | 20 | ![OpenSession](./images/OpenSession.png) 21 | 22 | 首先打开会话 23 | 24 | ![ScanUpdates](./images/ScanUpdates.png) 25 | 26 | 在更新管理中点击扫描 27 | 28 | ![InstallUpdates](./images/InstallUpdates.png) 29 | 30 | 扫描完成后,选择需要安装的更新,然后点击`安装`即可,然后耐心的等待安装完成…… 31 | 32 | > 温馨提示:
1:如果你不喜欢Win10自带的一堆Appx,你还可以在空间回收中使用过期Appx清理,这样就从系统安装包内就删除了Appx,安装系统后也没有自带Appx了。
33 | 2:安装完毕后,请重新扫描。因为补丁是以分批推送的,需要反复扫描安装多次,才能完成补丁安装。
34 | 3:安装更新后进行过期WinSxS组建清理很可能导致失败。这是因为更新挂起导致,解决办法只能安装到虚拟机。 35 | 36 | ## 保存install.wim 37 | 操作成功后,你可以点击文件选择`保存映像`,并选择覆盖保存。完成后点击`卸载映像`。 38 | 39 | ### 优化wim文件体积 40 | 由于保存映像会引入垃圾数据,增大文件体积。要得到最优体积,请点击 文件 - 打开映像文件。将处理的映像导出到`D:\Temp\Sources\install2.wim`。 41 | 42 | 然后把`D:\Temp\Sources\install2.wim`改名为`install.wim`。 43 | 44 | ## 保存ISO 45 | Dism++中的青蛙插件提供了ISO生成器,它可以制作双引导ISO(同时支持传统BIOS与UEFI启动)。 46 | 47 | ![SaveISO](./images/SaveISO.png) 48 | 49 | 如图所示,我们把 D:\Temp,中的内容保存为`D:\Win7New.iso`。 50 | 51 | > 温馨提示:如果你要同时处理Win7家庭版、专业版、旗舰版,那么我建议你想处理家庭版,然后其他版本可以通过系统版本升级进行处理。也可以多个版本同时集成补丁,Dism++支持多个映像同时集成补丁。 -------------------------------------------------------------------------------- /www.chuyu.me/en/library/reference/术语.md: -------------------------------------------------------------------------------- 1 | # Dism++ Terminology 2 | > We highly recommend that you do NOT skip reading this file; otherwise you may not understand the content later on! 3 | 4 | The terminology used in Dism++ is roughly the same as Microsoft's Dism. If there are any missing terminologies, it is recommended to refer to the documentation below, as well as referencing the [DISM Overview](https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/what-is-dism) article over at Microsoft Docs. 5 | 6 | ### Image 7 | This refers to a system. For example, if you have installed a system to `C:`, we can refer to this system as `Image C:`. 8 | 9 | ### Image File 10 | A file-type. This can be used to store an Image. In Dism++, an Image File can be WIM, SWM, ESD, and ISO。 11 | 12 | ### Online Image 13 | This refers the current operating system. Generally, the system under `C` is the current system, also known as an Online Image. For Dism commands, `Dism /Online ...` can be used to quickly open an Online Image; for Dism++, Online Image will have a symbol of `\*` in its name. 14 | 15 | ### Offline Image 16 | Exact opposite of Online Image. For example, if the current system is `C:`, then Images in other locations (e.g. F:\\Mount) are referred to as Offline Image. 17 | 18 | ### Target Image 19 | This refers to the Image currently being processed. For example, if you are applying updates for `Image D:`, then `D:` is your Target Image. 20 | 21 | ### Host 22 | This refers to the platform that Dism++ is running on, which is the current system. Its path is the same as Online Image. For example, if the current system is Windows 7, and you wish to process a Windows 10 Image, then your Host would be Windows 7, and your Target Image is Windows 10. 23 | > Reminder: You might think that it's strange that the concept of Host and Target exists; this is because some legacy Hosts cannot be used to process a system whose version is newer than itself. For example, when applying patches for Windows 10 on a Windows 7 Host, it can very often fail. 24 | 25 | ### WinPE 26 | A mini operating system. Usually small in size at around 300MB, used to install a system or to repair system issues. 27 | 28 | ### WinRE 29 | Identical to WinPE, except WinRE focuses more on system repair. Operating systems after Windows Vista ships with WinRE; thus, we can do anything that WinPE can do and more. 30 | 31 | ### System Architecture 32 | Each process has its own architecture, so does the operating system. The most common architectures are x86 and amd64. Furthermore, an amd64 system requires a Wow64 sub-system in order to execute x86 process normally. Thus, an x64 system without a Wow64 sub-system cannot be used to process an x86 Image. 33 | > Dism++ supports x86, amd64, IA64, arm, and amr64 architecture as Target Image; however, the Host of Dism++ can only be x86 or amd64. -------------------------------------------------------------------------------- /www.chuyu.me/en/library/reference/自定义规则.md: -------------------------------------------------------------------------------- 1 | # 自定义规则 2 | 授人以鱼,不如授人以渔。Dism++的能力是有限的,无法覆盖的所有用户的需求。因此给程序添加了自定义规则功能,方便高级用户打造自己的专属工具。 3 | 4 | ## 创建一个空白的自定义规则文件 5 | 我们只需要在Config目录新建一个 Custom\*.xml 这样形式的xml文件即可(\*表示任何字符串,比如Custom1.xml或者Custom我爱我的家.xml,另外文件以UTF8或者Unicode编码保存)。初始文件内容如下: 6 | ```xml 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | ``` 17 | 等所有工作完成后,在将这个xml文件压缩成一个zip,比如Custom1.zip或者Custom我爱我的家.zip。 18 | > 压缩为zip这是为了减少文件体积,避免造成不必要的文件占用。 19 | 20 | ## 垃圾清理规则从负五开始 21 | 下面我们将循序渐进,让你从入门到放弃。说错了,是入门到精通。当然也欢迎大家提供宝贵的意见。 22 | 23 | ### 编写一个最简单的清理规则 24 | 我们都知道 C:\\Windows\\Logs 是系统的日志目录。系统运行时会在此处产生大量日志,而且某些情况还不会自动删除。因此我们需要定期删除此文件。那我们如何通过规则来实现此功能呢? 25 | 26 | ```xml 27 | 28 | 29 | 30 | 31 | 32 | 系统的日志目录,用于存放系统运行日志。 33 | 34 | 临时文件 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | ``` 45 | 我想,聪明的你一定明白了,大概怎么写规则了。至于 General 的完整用法,可以参考引擎白皮书。 46 | 47 | ### 编写带环境变量发清理规则中 48 | 之前的规则你一定发现一个严重的问题。就是清理路径是死的。就只能是清空 `C:\Windows\Logs` 目录。系统盘并不一定是C……,因此这个规则是有瑕疵的。因此我们有了改进版。使用环境变量。 49 | 50 | ```xml 51 | 52 | 53 | 54 | 55 | 系统的日志目录,用于存放系统运行日志。 56 | 临时文件 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | ``` 66 | %SystemRoot%就是一个环境变量,表示C:\\Windows。具体所支持的环境变量,请参考后续文档——环境变量。现在规则适应性大大提高了。 67 | 68 | ### 编写多General清理规则 69 | 我们知道系统相关日志不止一个地方。我们可以把他们收录在一个规则里。比如Windows目录还有各种log文件。比如WindowsUpdate.log、setuperr.log、setupact.log等等。General 语法提供了Query功能可以删除他们。 70 | 71 | ```xml 72 | 73 | 74 | 75 | 系统的日志目录,用于存放系统运行日志。 76 | 临时文件 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | WindowsUpdate.log 85 | setuperr.log 86 | setupact.log 87 | 88 | 89 | 90 | 91 | 92 | 93 | ``` 94 | ### 使用通配改进清理规则 95 | 你一定感觉到这个规则太蠢了,如果后来又新增加了log文件怎么办?其实Query是支持简单的通配符的。将 后缀是 .log的文件全部删除即可。因此我们可以使用通配来调整规则。 96 | 97 | ```xml 98 | 99 | 100 | 101 | 系统的日志目录,用于存放系统运行日志。 102 | 临时文件 103 | 104 | 105 | 106 | 107 | 108 | *.log 109 | 110 | 111 | 112 | 113 | 114 | 115 | ``` 116 | 但是通配也会有问题,假如我们不希望Dism++删除%SystemRoot%\\WindowsUpdate.log。我们可以使用 Excluded 排除不想删除的内容,当然 Excluded也支持通配。 117 | ```xml 118 | 119 | 120 | 121 | 系统的日志目录,用于存放系统运行日志。 122 | 临时文件 123 | 124 | 125 | 126 | 127 | *.log 128 | 129 | WindowsUpdate.log 130 | 131 | 132 | 133 | 134 | 135 | 136 | ``` 137 | -------------------------------------------------------------------------------- /www.chuyu.me/en/library/reference/隐藏功能.md: -------------------------------------------------------------------------------- 1 | # Dism++隐藏设置 2 | 此处将公开Dism++未在UI中呈现的设置,你可以修改Config\\Config.ini,让这些设置生效。 3 | 4 | | 启用方式 | 功能 5 | | -------- | ------- 6 | |[Dism++]
NotLoadWofadk=1|添加后Dism++将不会在启动时加载Wof驱动,默认情况下Dism++会在Win8以上系统自动加载Wof驱动。如果你的环境比较特殊,可以开启此选项。开启后,WIMBoot以及Compact相关功能可能会受限。 7 | |[WUA]
DisableInstallUpdate=1|添加后Dism++将跳过Windows Update中的更新安装过程,转变为仅下载更新,如果单纯需要收集更新文件的用户可以启用此选项。 8 | |[WUA]
MaxDownloadThread=10|将Windows Update并发下载数调整为10,具体可以根据自己的情况调整,Dism++默认10个线程并发。 9 | |注册表添加值
HKEY_LOCAL_MACHINE\SOFTWARE\Dism++\Hide|隐藏某些挂载映像,某些PE可能存在内置挂载点。启动Dism++时可能会让用户比较郁闷。你可以在你的PE中设置此键。

[HKEY_LOCAL_MACHINE\SOFTWARE\Dism++\Hide]
"D:\\\\7"=dword:00000000

导入后Dism++将默认不显示D:\\7这个挂载映像 10 | |命令行参数:
/ScratchDir "D:\\Temp"|将Dism++临时目录调整为D:\\Temp,具体可以根据自己的情况调整。默认临时目录可用空间不足时可以考虑使用。 11 | -------------------------------------------------------------------------------- /www.chuyu.me/en/library/start.md: -------------------------------------------------------------------------------- 1 | >* Under Construction 2 | * You can commit your translations to [here](https://github.com/Chuyu-Team/Dism-Multi-language/tree/master/www.chuyu.me/en) if you want to help us to translate the English documentations. 3 | 4 | ![Welcome to Dism++](../images/logo.png "Welcome to Dism++") 5 | 6 | ## About Dism++ - **We are in the frontline!** 7 | 8 | Dism++ can be considered as a GUI frontend of DISM, but it does not rely on Dism. It is instead based on a low-level Component Based Servicing (CBS) interface instead of the DISM API or DISM Core API. 9 | 10 | 11 | ### Dism++ Features 12 | * Dism++ does not require any additional Dism component, such as the Windows ADK DISM components, making it compatible with a vareity of systems. Compared to Microsoft's Dism, the other solution requires 3 versions of the Windows ADK DISM components. 13 | * Dism++ is like an improved version of Dism. It provides a full graphical interface and supports almost all of Dism's functionalities and more. It can be used to manage updates, drivers, updates, features, Appx; toggle services and features; use Compact and WIMBoot; repair system...etc. 14 | * Dism++ provides full WIM support (including ESD patching, ESD to ISO, release partial ESD, and direct support for ISO). `Most importantly, when using the ESD to ISO conversion feature, Dism++ can decrypt from the internal storage without decrypting the data.` 15 | * Dism++ provides an open-ended clean-up and optimization features. Users can define their own Dism++ rules, creating their own tools for the system. 16 | 17 | [ [BUG Feedback](https://github.com/Chuyu-Team/Dism-Multi-language/issues) ] 18 | [ [QQ Group 200783396](http://shang.qq.com/wpa/qunwpa?idkey=07a04c095aee1e31f54b82ba98499a5b49aa10185f975946243ba68e0134a34e) ] 19 | 20 | ### Donate Dism++ 21 | All donations go towards hosting; if enough people help out or donate enough, we may even be able to pay our rents. For sustaniability, we recommend donating annually, roughly 20 RMB (~$4 USD) every time. 22 | 23 | `Reminder: Donation does not equate to paying for support. This software is developed out of self-interest. Feedbacks may not be processed immediately. Please do not donate to Dism++ for the sake of software support.` 24 | 25 | ![donate](../images/donate.png) 26 | 27 | ## Minimum requirements of Dism++ 28 | Minimum: Windows NT 6.0 or later, 512 MB Physical Memory 29 | 30 | Recommended: Windows NT 6.1 or later, AMD64-based system, 8 GB Physical Memory and 8 GB Pagefile or higher 31 | 32 | >* You can only run Dism++ on x86 and AMD64 processors. IA64, ARM and ARM64 systems can only support loading images in offline mode. 33 | * Dism++ does not support x86 images if lacks the WOW64 support in AMD64 Windows. (e.g. AMD64 Windows ADK PE.) 34 | * Features like CompactOS, WIMBoot and etc. are unavailable in Windows Vista and Windows Server 2008. 35 | 36 | ## The file list of Dism++ 37 | 38 | Here are the all files about Dism++. You can delete those that you do not need. Ignore the following if you do not know what you are doing or are too lazy. 39 | 40 | | File Name | Description 41 | | -------- | ------- 42 | |Dism++x64.exe| User interface for x64-based systems; used to provide a graphical interface. This file can be considered for deletion only for x64 systems. 43 | |Dism++x86.exe| User interface for x86-based systems; used to provide a graphical interface. When launched on an x64 system, Dism++x64.exe will be launched instead. This file can be considered for deletion only for x86 systems. 44 | |Dism++arm64.exe| User interface for x64-based systems; used to provide a graphical interface. This file can be considered for deletion only for arm64 systems. 45 | |Config\amd64\bcdboot.exe| Provides index repair functionalitiy for x64 users. All versions of Windows come with this utility, removing this file does not affect the overall functionalitiy. Users with a full installation of Windows and x86 users can consider removing this file. 46 | |Config\x86\bcdboot.exe| Provides index repair functionalitiy for x86 users. All versions of Windows come with this utility, removing this file does not affect the overall functionalitiy. Users with a full installation of Windows and x64 users can consider removing this file. 47 | |Config\amd64\CBSHost.dll| 64-bit Dism++ API support module. Removing this file will render the utility useless for x64 users. x86 users can consider removing this file. 48 | |Config\x86\CBSHost.dll| 32-bit Dism++ API support module. Removing this file will render the utility useless for x86 users; x64 users will not be able to process x86-based systems offline. x64 users that do not need to handle x86-based systems can consider removing this file. 49 | |Config\arm64\CBSHost.dll| arm64 Dism++ API support module. Removing this file will render the utility useless for arm64 users. This file can be considered for deletion only for arm64 systems. 50 | |Config\amd64\NCleaner.dll| 64-bit NCleaner cleanup engine. Removing this file can render some of the advanced clean-up features unusable. x86 users can consider removing this file. 51 | |Config\x86\NCleaner.dll| 32-bit NCleaner engine. Removing this file can render some of the advanced clean-up features unusable. x64 users can consider removing this file. 52 | |Config\arm64\NCleaner.dll| arm64 NCleaner cleanup engine. Removing this file can render some of the advanced clean-up features unusable. This file can be considered for deletion only for arm64 systems. 53 | |Config\amd64\wimgapi.dll| WIM file operation support module. Windows 10 users, x86 users, or users that do not need to utilize any features related to WIM can consider removing this file. 54 | |Config\x86\wimgapi.dll| WIM file operation support module. Windows 10 users, x64 users, or users that do not need to utilize any features related to WIM can consider removing this file. 55 | |Config\amd64\wofadk.sys
Config\x86\wofadk.sys| Offers support for Compact-related features. Users that do not need to process Windows 10 systems offline can consider deleting this file. We highly recommend that you do not remove this file. 56 | |Config\Plugins| Offers Dism++ plugin support. Users that do not use plugins can consider removing this file. 57 | |Config\Languages| Dism++ Language files. For English users, you could remove everything else but `en.zip`. 58 | |Config\Data.zip| Includes cleanup rules, ESD decrypt keys, etc. Please DO NOT delete this file. 59 | |Config\UpdateInfo.zip
Config\UpdateInfoBeta.zip| Provides update information of Dism++, used to check for new versions and used to avoid downgrade to an older version. It is recommended to keep this file; when the file is missing, it will be re-downloaded automatically. 60 | |Config\default.ui.zip| Contains UI configruation for Dism++. Please DO NOT delete this file. 61 | |Config\wsusscn2.cab| Windows Update database file, used to scan updates. You can delete this file. 62 | |Config\include\Dism++.h| This file is only available in the beta version. The header file for C Script, missing this file can render C Script unusable. 63 | |Config\amd64\CScript.dll|This file is only available in the beta version. The 64-bit parsing engine for C Script, missing this file can render C Script unusable. You can delete this file when you using a 32-Bit OS. 64 | |Config\x86\CScript.dll|This file is only available in the beta version. The 32-bit parsing engine for C Script, missing this file can render C Script unusable. You can delete this file when you using a 64-Bit OS. -------------------------------------------------------------------------------- /www.chuyu.me/es.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /www.chuyu.me/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /www.chuyu.me/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /www.chuyu.me/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /www.chuyu.me/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /www.chuyu.me/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /www.chuyu.me/fr.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /www.chuyu.me/images/1487498940074.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/1487498940074.jpg -------------------------------------------------------------------------------- /www.chuyu.me/images/antivirus-antimalware-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/antivirus-antimalware-large.png -------------------------------------------------------------------------------- /www.chuyu.me/images/avast-software-smaller-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/avast-software-smaller-white.png -------------------------------------------------------------------------------- /www.chuyu.me/images/browser-cleanup-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/browser-cleanup-large.png -------------------------------------------------------------------------------- /www.chuyu.me/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/favicon.ico -------------------------------------------------------------------------------- /www.chuyu.me/images/hns-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/hns-large.png -------------------------------------------------------------------------------- /www.chuyu.me/images/icon-social.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/icon-social.png -------------------------------------------------------------------------------- /www.chuyu.me/images/icon-sprite-header-100px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/icon-sprite-header-100px.png -------------------------------------------------------------------------------- /www.chuyu.me/images/icon06.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/icon06.gif -------------------------------------------------------------------------------- /www.chuyu.me/images/icon07.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/icon07.gif -------------------------------------------------------------------------------- /www.chuyu.me/images/icon08.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/icon08.gif -------------------------------------------------------------------------------- /www.chuyu.me/images/icons-sprite-nav-orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/icons-sprite-nav-orange.png -------------------------------------------------------------------------------- /www.chuyu.me/images/icons-sprite-nav.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/icons-sprite-nav.png -------------------------------------------------------------------------------- /www.chuyu.me/images/line04.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/line04.gif -------------------------------------------------------------------------------- /www.chuyu.me/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/logo.png -------------------------------------------------------------------------------- /www.chuyu.me/images/password-manager-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/password-manager-large.png -------------------------------------------------------------------------------- /www.chuyu.me/images/remote-assistance-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/remote-assistance-large.png -------------------------------------------------------------------------------- /www.chuyu.me/images/slide-top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/slide-top.png -------------------------------------------------------------------------------- /www.chuyu.me/images/smart-scan-large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/smart-scan-large.png -------------------------------------------------------------------------------- /www.chuyu.me/images/sut/DifferDone.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/sut/DifferDone.jpg -------------------------------------------------------------------------------- /www.chuyu.me/images/sut/InstallApp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/sut/InstallApp.jpg -------------------------------------------------------------------------------- /www.chuyu.me/images/sut/MakingSut.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/sut/MakingSut.jpg -------------------------------------------------------------------------------- /www.chuyu.me/images/sut/ScanDiffer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/sut/ScanDiffer.jpg -------------------------------------------------------------------------------- /www.chuyu.me/images/sut/StartInstallApp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/sut/StartInstallApp.jpg -------------------------------------------------------------------------------- /www.chuyu.me/images/sut/StartMakerSut.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/sut/StartMakerSut.jpg -------------------------------------------------------------------------------- /www.chuyu.me/images/sut/SutStart.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/sut/SutStart.jpg -------------------------------------------------------------------------------- /www.chuyu.me/images/sut/ViewData.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/sut/ViewData.jpg -------------------------------------------------------------------------------- /www.chuyu.me/images/sut/Wait.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/sut/Wait.jpg -------------------------------------------------------------------------------- /www.chuyu.me/images/up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/up.png -------------------------------------------------------------------------------- /www.chuyu.me/images/weixin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/images/weixin.png -------------------------------------------------------------------------------- /www.chuyu.me/index.html: -------------------------------------------------------------------------------- 1 |  56 | -------------------------------------------------------------------------------- /www.chuyu.me/it.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /www.chuyu.me/ja.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /www.chuyu.me/js/jquery.history.js: -------------------------------------------------------------------------------- 1 | jQuery.fn.slideFadeToggle = function(speed, easing, callback) { 2 | return this.animate({opacity: 'toggle', height: 'toggle'}, speed, easing, callback); 3 | }; 4 | 5 | $(function() { 6 | if (!$(".history").length) { 7 | return; 8 | } 9 | var $warpEle = $(".history-date"); 10 | $warpEle.find("h2").click(function(){ 11 | $(this).siblings().slideFadeToggle(); 12 | }); 13 | $warpEle.find("h3").click(function(){ 14 | $(this).next().find('dd').slideFadeToggle('slow'); 15 | }); 16 | $warpEle.find("dt").click(function(){ 17 | $(this).next().slideFadeToggle('slow'); 18 | }); 19 | }); -------------------------------------------------------------------------------- /www.chuyu.me/js/jquery.scrolltopcontrol.js: -------------------------------------------------------------------------------- 1 | //** jQuery Scroll to Top Control script- (c) Dynamic Drive DHTML code library: http://www.dynamicdrive.com. 2 | //** Available/ usage terms at http://www.dynamicdrive.com (March 30th, 09') 3 | //** v1.1 (April 7th, 09'): 4 | //** 1) Adds ability to scroll to an absolute position (from top of page) or specific element on the page instead. 5 | //** 2) Fixes scroll animation not working in Opera. 6 | 7 | 8 | var scrolltotop={ 9 | //startline: Integer. Number of pixels from top of doc scrollbar is scrolled before showing control 10 | //scrollto: Keyword (Integer, or "Scroll_to_Element_ID"). How far to scroll document up when control is clicked on (0=top). 11 | setting: {startline:100, scrollto: 0, scrollduration:1000, fadeduration:[500, 100]}, 12 | controlHTML: '', //HTML for control, which is auto wrapped in DIV w/ ID="topcontrol" 13 | controlattrs: {offsetx:5, offsety:5}, //offset of control relative to right/ bottom of window corner 14 | anchorkeyword: '#top', //Enter href value of HTML anchors on the page that should also act as "Scroll Up" links 15 | 16 | state: {isvisible:false, shouldvisible:false}, 17 | 18 | scrollup:function(){ 19 | if (!this.cssfixedsupport) //if control is positioned using JavaScript 20 | this.$control.css({opacity:0}); //hide control immediately after clicking it 21 | var dest=isNaN(this.setting.scrollto)? this.setting.scrollto : parseInt(this.setting.scrollto); 22 | if (typeof dest=="string" && jQuery('#'+dest).length==1) //check element set by string exists 23 | dest=jQuery('#'+dest).offset().top; 24 | else 25 | dest=0; 26 | this.$body.animate({scrollTop: dest}, this.setting.scrollduration); 27 | }, 28 | 29 | keepfixed:function(){ 30 | var $window=jQuery(window); 31 | var controlx=$window.scrollLeft() + $window.width() - this.$control.width() - this.controlattrs.offsetx; 32 | var controly=$window.scrollTop() + $window.height() - this.$control.height() - this.controlattrs.offsety; 33 | this.$control.css({left:controlx+'px', top:controly+'px'}); 34 | }, 35 | 36 | togglecontrol:function(){ 37 | var scrolltop=jQuery(window).scrollTop(); 38 | if (!this.cssfixedsupport) 39 | this.keepfixed(); 40 | this.state.shouldvisible=(scrolltop>=this.setting.startline)? true : false; 41 | if (this.state.shouldvisible && !this.state.isvisible){ 42 | this.$control.stop().animate({opacity:1}, this.setting.fadeduration[0]); 43 | this.state.isvisible=true; 44 | } 45 | else if (this.state.shouldvisible==false && this.state.isvisible){ 46 | this.$control.stop().animate({opacity:0}, this.setting.fadeduration[1]); 47 | this.state.isvisible=false; 48 | } 49 | }, 50 | 51 | init:function(){ 52 | jQuery(document).ready(function($){ 53 | var mainobj=scrolltotop; 54 | var iebrws=document.all; 55 | mainobj.cssfixedsupport=!iebrws || iebrws && document.compatMode=="CSS1Compat" && window.XMLHttpRequest; //not IE or IE7+ browsers in standards mode 56 | mainobj.$body=(window.opera)? (document.compatMode=="CSS1Compat"? $('html') : $('body')) : $('html,body'); 57 | mainobj.$control=$('
'+mainobj.controlHTML+'
') 58 | .css({position:mainobj.cssfixedsupport? 'fixed' : 'absolute', bottom:mainobj.controlattrs.offsety, right:mainobj.controlattrs.offsetx, opacity:0, cursor:'pointer'}) 59 | .attr({title:'回到顶部'}) 60 | .click(function(){mainobj.scrollup(); return false;}) 61 | .appendTo('body'); 62 | if (document.all && !window.XMLHttpRequest && mainobj.$control.text()!='') //loose check for IE6 and below, plus whether control contains any text 63 | mainobj.$control.css({width:mainobj.$control.width()}); //IE6- seems to require an explicit width on a DIV containing text 64 | mainobj.togglecontrol(); 65 | $('a[href="' + mainobj.anchorkeyword +'"]').click(function(){ 66 | mainobj.scrollup(); 67 | return false; 68 | }); 69 | $(window).bind('scroll resize', function(e){ 70 | mainobj.togglecontrol(); 71 | }); 72 | }); 73 | } 74 | }; 75 | 76 | scrolltotop.init(); -------------------------------------------------------------------------------- /www.chuyu.me/pt.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /www.chuyu.me/ru.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /www.chuyu.me/tr.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /www.chuyu.me/uk.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/images/ApplyUUPESD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hans/images/ApplyUUPESD.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/images/ApplyWIMBoot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hans/images/ApplyWIMBoot.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/images/BackupImage-WimPath.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hans/images/BackupImage-WimPath.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/images/BackupImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hans/images/BackupImage.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/images/CleanupUI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hans/images/CleanupUI.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/images/CompactOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hans/images/CompactOS.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/images/ExportWIMBoot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hans/images/ExportWIMBoot.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/images/ISOInstallOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hans/images/ISOInstallOS.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/images/InstallUpdates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hans/images/InstallUpdates.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/images/MainUI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hans/images/MainUI.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/images/OpenSession.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hans/images/OpenSession.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/images/RecoveryImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hans/images/RecoveryImage.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/images/SaveISO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hans/images/SaveISO.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/images/ScanUpdates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hans/images/ScanUpdates.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/library/$navigation.md: -------------------------------------------------------------------------------- 1 |  2 | #### [关于Dism++](?file=start.md "返回") 3 | 4 | ##### 1. 快速入门 5 | - [1.1 快速入门](?file=Quickstart.md "快速入门") 6 | - [1.2 Dism转Dism++入门](?file=Dism2Dism++.md "Dism转Dism++入门") 7 | 8 | ##### 2. 高级进阶 9 | - [2.1. Dism++术语](?file=Dism++Library/术语.md "Dism++术语") 10 | - [2.2. Dism++隐藏设置](?file=Dism++Library/隐藏功能.md "Dism++隐藏设置") 11 | - [2.3. 自定义规则](?file=Dism++Library/自定义规则.md "自定义规则") 12 | - [2.4. 规则结构参考](?file=Dism++Library/规则结构参考.md "规则结构参考") 13 | - [2.5. 通用安装脚本——sut](?file=Dism++Library/Dism++sut.md "通用安装脚本") 14 | 15 | ##### 3. Dism++最佳实践 16 | - [3.1. 使用Dism++安装系统](?file=Best/使用Dism++安装系统.md "使用Dism++安装系统") 17 | - [3.2. 给ISO离线集成补丁](?file=Best/给ISO离线集成补丁.md "给ISO离线集成补丁") 18 | 19 | -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/library/Best/使用Dism++安装系统.md: -------------------------------------------------------------------------------- 1 | # 使用Dism++安装系统 2 | 安装系统是一个简单而又复杂的活。有的仅仅为了安装系统,先把ESD转为ISO。有的因为安装器不支持ESD,而转换为WIM。还有的在解压ISO……这根本原因是人们很多时候难以灵活运用现有的工具。君子生非异也,善假于物也。本文将通过一些实例,帮助大家驾驭Dism++。 3 | 4 | ## 前言 5 | ### 启动Dism++ RE模式 6 | 大家可能听说过PE,没见过RE。其实RE可以说跟PE是一样的,也就是说PE能做什么,RE也能做什么。另外Vista以后的系统都自带RE,所以我们平常的工作完全可以使用RE来解决,无需使用PE。 7 | 8 | 是不是心动了?Dism++为了简化RE使用流程,特意引入了RE模式。其作用就是重启系统,然后启动RE,在启动Dism++。 9 | 10 | 使用方法也很简单,在菜单点击 `恢复功能 - 在RE中运行`。首次启用需要配置一些设置,操作完成后重启电脑就可以了。 11 | 12 | > 在RE模式中,Dism++可以格式化系统盘。如果需要全新安装系统,又不想使用PE,可以使用此模式。 13 | 14 | ### Dism++添加引导支持情况 15 | #### 传统BIOS以及UEFI支持情况 16 | Dism++完全支持标准的传统BIOS以及UEFI引导。但是要看清楚,是支持标准的引导,一些非标准的是不支持的。典型的UEFI启动的系统使用MBR磁盘是不支持的。 17 | 18 | 这是因为Dism++有自动检测逻辑,发现系统盘是MBR格式,那么添加引导时自动按照传统BIOS启动方式进行处理。反之,发现GPT分区则安装UEFI方式处理。 19 | 20 | 因此那些系统盘是MBR却要用UEFI启动,或者系统盘是GPT却要上传统BIOS启动。这些情况,Dism++的处理结果是不能让人满意的,这些用户建议手动配置引导。 21 | #### 多硬盘引导支持情况 22 | Dism++完美支持多硬盘引导。可以为多个硬盘设置独立引导,也可以使用共享引导。但是多硬盘引导设置往往需要人工干预,因为程序并不知道你需要独立引导,还是共享引导。 23 | 24 | Dism++默认使用独立引导模式,需要调整为共享引导的用户,在添加引导时,请点击`更多`,然后手动调整。 25 | 26 | #### 隐藏启动分区支持情况 27 | Dism++完美支持隐藏启动分区,用户无需手动分配盘符。添加引导信息时,程序能直接操作隐藏的启动分区,无需分配盘符。特别是UEFI用户,放马过来吧。 28 | 29 | #### VHD/VHDX启动支持情况 30 | Dism++完美支持配置VHD启动,程序检测到系统盘是VHD时,会自动转向到VHD模式,无需人工干预。不过,值得注意的是Windows 7旗舰版才支持VHD启动。另外只有Windows 8以上系统才能使用VHDX,到时搞了半天…… 31 | 32 | 最后有要扯到 传统BIOS以及UEFI支持情况。VHD的分区类型跟启动盘的分区类型必须一致,不然Dism++没法正常配置引导。比如VHD是GPT那么启动盘也需要是GPT,反之亦然。 33 | 34 | ## 从ISO安装系统 35 | ISO是最常见的系统载体,为此Dism++提供了直接的ISO支持。你可以直接使用ISO安装系统,无需挂载ISO或者解压ISO。 36 | > Dism++内置了文件虚拟化技术,可以将文件流虚拟为一个文件。因此Dism++可以直接释放ISO里的install.wim。 37 | 38 | 使用方法也很简单,在菜单中,点击文件 - 释放映像 即可。记得勾选 `添加引导`。`格式化`这个选项可以根据自己的需要使用,如果勾选此选项,会把的选择的系统盘进行清空。 39 | 40 | ![ISOInstallOS](./images/ISOInstallOS.png) 41 | 42 | 上图中,将ISO中的系统安装到 D盘,同时对D盘进行格式化。 43 | 44 | 点击目标映像右侧的下拉框,可以切换系统,确认无误后点击确定即可。 45 | 46 | > 如果你需要格式化当前系统盘,则上述操作必须在RE或者PE等其他系统中进行。 47 | 48 | 49 | ## 从ESD(包括加密ESD以及UUP ESD)安装系统 50 | 从Windows 8以后,微软会定期从Windows Update推送ESD。而ESD中就包含了安装系统所必需的文件。我们可以直接使用ESD进行系统安装。哪怕这个ESD是加密的或者UUP分段ESD。 51 | > Dism++内置了文件虚拟化技术,加密ESD会在内存中解密,然后再释放系统,此过程并不会修改原始ESD文件。 52 | 53 | 使用方法也很简单,在菜单中,点击文件 - 释放映像 即可。记得勾选 `添加引导`。`格式化`这个选项可以根据自己的需要使用,如果勾选此选项,会把的选择的系统盘进行清空。 54 | > 释放UUP ESD时,可以选择UUP文件夹中的ActionList.xml(推荐),也可以直接选择顶级ESD(比如Professional_zh-cn.esd)。 55 | 56 | ![ApplyUUPESD](./images/ApplyUUPESD.png) 57 | 58 | 如上图,跟ISO释放稍微不同的是,目标映像需要选择操作系统,如上图所示目标映像,千万别傻傻的选择Windows Setup。 59 | 60 | 点击目标映像右侧的下拉框,可以切换系统,确认无误后点击确定即可。 61 | 62 | > 如果你需要格式化当前系统盘,则上述操作必须在RE或者PE等其他系统中进行。 63 | 64 | ## 使用Compact技术安装系统 65 | Compact是Windows 10新引入的压缩启动技术。一般减少1/3的空间占用,同时几乎不影响到IO性能。 66 | 67 | 在Dism++中,你可以使用Compact技术安装Windows 7以上所有系统。程序将自动配置驱动并解压核心启动文件。 68 | 69 | > 需要注意的是,要使用Compact技术,Host系统必须是Windows 7或者更高。另外在Windows 7中默认不会加载WofAdk驱动。Win7用户使用前,请先在 选项 - 详细设置。勾选加载WofADK驱动,然后点击确定。 70 | 71 | Comacpt技术使用也非常简单,在释放映像时(支持WIM、SWM、ESD、UUP ESD以及ISO),勾选Compact,添加引导即可。如下图所示: 72 | 73 | ![CompactOS](./images/CompactOS.png) 74 | 75 | 操作完成后,重启系统即可启动Compact技术安装的系统了。 76 | 77 | ## 使用WIMBoot技术安装系统 78 | WIMBoot技术可以减少更多的空间占用,同时充分的利用了备份区,而且由于文件集中存放,往往可以提供更佳的IO性能。看似一切很美好,但是有个致命问题,长期使用WIMBoot会导致系统盘体积越来越大。最后表现比Compact还渣…… 79 | > WIMBoot技术是Compact的前身,由于有个体积越来越大问题,所以被抛弃使用。Dism++建议优先考虑使用Compact。 80 | 81 | 在Dism++中,你可以使用WIMBoot技术安装Windows 7以上所有系统。程序将自动配置驱动并解压核心启动文件。 82 | 83 | > 需要注意的是,要使用WIMBoot技术,Host系统必须是Windows 7或者更高。另外在Windows 7中默认不会加载WofAdk驱动。Win7用户使用前,请先在 选项 - 详细设置。勾选加载WofADK驱动,然后点击确定。 84 | 85 | WIMBoot技术使用略微比Compact麻烦一点,首先你需要准备一个WIMBoot压缩类型的wim文件。 86 | > PS: 虽然Dism++也支持快速压缩以及最大压缩的wim文件以WIMBoot方式启动,但是Dism++建议还是转换到WIMBoot压缩然后继续,以获得更加性能。 87 | 88 | ![ExportWIMBoot](./images/ExportWIMBoot.png) 89 | 90 | 如上图所示,我们把ISO里面的Windows 7旗舰版,选择WIMBoot压缩,然后导出到`G:\Win7 WIMBoot.wim`。 91 | 92 | 转换完成后,在使用`文件 - 释放映像`,并勾选WIMBoot即可,如下图所示: 93 | 94 | ![ApplyWIMBoot](./images/ApplyWIMBoot.png) 95 | 96 | 把刚才得到的`G:\Win7 WIMBoot.wim`,使用WIMBoot技术,释放到D盘,格式化并添加引导。 97 | 98 | OK,现在大功告成,操作完成后,重启就能看到WIMBoot启动的系统了。 -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/library/Best/给ISO离线集成补丁.md: -------------------------------------------------------------------------------- 1 | # 给ISO离线集成补丁 2 | 大家是否厌倦了每次安装补丁后又要打一堆补丁的感觉?使用微软的Dism打补丁又需要自己收集补丁,而且每个月有新补丁,还有老补丁被取代。现在Dism++重建了Windows Update,直接从WSUS服务器中导出补丁数据库,全自动获取最新更新,自动剔除过期老补丁,在通过CBS判断系统是否需要此更新。下面来看看怎么使用吧。 3 | 4 | ## 解压ISO 5 | 为了处理ISO里面的install.wim。我们先把ISO文件解压到硬盘。这一步,你可以使用压缩软件,比如7z等,右键解压即可。假设我们解压到`D:\Temp`。 6 | 7 | ## 挂载install.wim 8 | 为了让Dism++能识别到系统,我们需要挂载install.wim。`挂载映像`非常简单,在菜单点击 `文件 - 挂载映像`。 9 | 10 | 映像文件路径我们设置为`D:\Temp\Sources\install.wim`。 11 | 挂载路径我们设置为`D:\Mount`(必须存在)。 12 | 如果你需要调整映像,则执行点击目标映像,切换需要挂载的系统。(比如我这里选择了Win7旗舰版) 13 | 14 | 最后点击确定 15 | 16 | ## 扫描并安装更新 17 | 点击`打开会话`,然后点击`更新管理`,在点击`扫描`,扫描完成后程序会列出所有可以安装的更新,选中需要的更新点点击安装即可 18 | 温馨提示:Dism++会把更新缓存在 程序目录的 "Config\\UpdateCache"文件夹,以后安装时Dism++将直接使用上次的缓存。 19 | 20 | ![OpenSession](./images/OpenSession.png) 21 | 22 | 首先打开会话 23 | 24 | ![ScanUpdates](./images/ScanUpdates.png) 25 | 26 | 在更新管理中点击扫描 27 | 28 | ![InstallUpdates](./images/InstallUpdates.png) 29 | 30 | 扫描完成后,选择需要安装的更新,然后点击`安装`即可,然后耐心的等待安装完成…… 31 | 32 | > 温馨提示:
1:如果你不喜欢Win10自带的一堆Appx,你还可以在空间回收中使用过期Appx清理,这样就从系统安装包内就删除了Appx,安装系统后也没有自带Appx了。
33 | 2:安装完毕后,请重新扫描。因为补丁是以分批推送的,需要反复扫描安装多次,才能完成补丁安装。
34 | 3:安装更新后进行过期WinSxS组件清理很可能导致失败。这是因为更新挂起导致,解决办法只能安装到虚拟机。 35 | 36 | ## 保存install.wim 37 | 操作成功后,你可以点击文件选择`保存映像`,并选择覆盖保存。完成后点击`卸载映像`。 38 | 39 | ### 优化wim文件体积 40 | 由于保存映像会引入垃圾数据,增大文件体积。要得到最优体积,请点击 文件 - 打开映像文件。将处理的映像导出到`D:\Temp\Sources\install2.wim`。 41 | 42 | 然后把`D:\Temp\Sources\install2.wim`改名为`install.wim`。 43 | 44 | ## 保存ISO 45 | Dism++中的青蛙插件提供了ISO生成器,它可以制作双引导ISO(同时支持传统BIOS与UEFI启动)。 46 | 47 | ![SaveISO](./images/SaveISO.png) 48 | 49 | 如图所示,我们把 D:\Temp,中的内容保存为`D:\Win7New.iso`。 50 | 51 | > 温馨提示:如果你要同时处理Win7家庭版、专业版、旗舰版,那么我建议你想处理家庭版,然后其他版本可以通过系统版本升级进行处理。也可以多个版本同时集成补丁,Dism++支持多个映像同时集成补丁。 -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/library/Dism++Library/Dism++sut.md: -------------------------------------------------------------------------------- 1 | # 通用安装脚本——sut 2 | 通用安装脚本用于将软件整合到离线系统,并且整合是原生整合,而非通过应答实现。这意味着可以大大缩短系统安装时间。 3 | 4 | [ [下载SutWizard 1.0.0.2](http://cdn.chuyu.me/SutWizard_1.0.0.2_7ba6e8933b4b8ab5c85d09d435a9f8585d2764e3.zip) ] 5 | 6 | 7 | ## 核心思想 8 | 安装一个软件其实很大程度上可以理解为,释放文件然后在导入相关注册表。因此理论上我们只需要把这些动作捕获,得到一个差异集合。那么就可以转移到其他相似的系统中。 9 | sut通用安装脚本就是如此,第一阶段:释放相关文件,第二阶:段导入注册表以及其他行为。而保存为一个sut文件是为了方便以后再次使用。 10 | 为了降低sut制作门槛,我还提供了一个工具SutWizard,用于自动化产生差异以及制作sut文件。有需要的人士可以自行下载。 11 | 12 | 13 | ## Sut一般制作流程 14 | 15 | 要进行此过程,你必须准备`SutWizard`以及你需要安装的应用程序。 16 | 17 | 18 | ### 启动SutWizard(快速模式) 19 | 20 | 21 | 选择快速模式,然后点击下一步。 22 | 23 | ![](../images/sut/SutStart.jpg) 24 | 25 | 26 | 等待快照完成。 27 | 28 | ![](../images/sut/Wait.jpg) 29 | 30 | 31 | 过一段时间后,你将看到提示。这时进入第二阶段,安装你的应用程序。 32 | 33 | ![](../images/sut/InstallApp.jpg) 34 | 35 | 36 | ### 安装应用程序 37 | 当程序提示说你可以安装应用后,双击你需要安装的应用程序。这里我们以VC 2008为例。操作过程中请勿关闭SutWizard! 38 | 39 | 手动双击你需要的应用程序,然后让他安装完成。 40 | 41 | ![](../images/sut/StartInstallApp.jpg) 42 | 43 | 44 | ### SutWizard产生差异数据 45 | 46 | VC 2008安装完成后,点击完成。这时程序会显示正在产生差异。稍等片刻…… 47 | 48 | ![](../images/sut/ScanDiffer.jpg) 49 | 50 | 51 | 差异产生完成,程序会把数据放在这个目录。 52 | 53 | ![](../images/sut/DifferDone.jpg) 54 | 55 | ### 优化差异数据 56 | 一般情况下有较多垃圾,建议你手动删除不必要的数据。 57 | 打开这个目录后,你会看到`AppData`目录以及`Data`目录。AppData用于存在程序文件部分,你可以手动删除一些意外引入的垃圾文件。 58 | 59 | Data这是软件的注册表以及规则文件。同样的注册表也可能意外引入大量垃圾,建议手动删除后继续。 60 | 61 | 在来说说`Data\Data.xml`,它是规则文件。打开后你一般可以看到如下所示: 62 | 63 | ![](../images/sut/ViewData.jpg) 64 | 65 | 其中 `IsInstallable` 节点必须填写,注释中也说了这个节点用于判断此软件是否适用目标系统。由于这个sut是在Windows 10 15063 x64里面制作的,因此一般的我们可以这样写: 66 | 67 | ```xml 68 | 69 | 70 | 71 | 72 | 9 73 | 74 | 10.0.15063 75 | 76 | 77 | ``` 78 | 79 | 简单的就这样了,接下来你可以打包为sut。 80 | 81 | 82 | ### 打包Sut 83 | 84 | 同样的,此过程我们需要SutWizard,不过选择第三项,然后点击继续。 85 | 86 | ![](../images/sut/StartMakerSut.jpg) 87 | 88 | 89 | 填写刚才的目录,以及输入Sut文件保存路径,点击完成。稍等片刻……知道提示完成。 90 | 91 | ![](../images/sut/MakingSut.jpg) 92 | 93 | 94 | 这时你就可以将`C:\MyFirst.sut` 应用于其他的Windows 10 15063 x64。如果你希望你的脚本拥有更加广泛的适用性。请自行编辑Data.xml,让你的Sut更加通用。 95 | 96 | 97 | 98 | 99 | ## sut结构说明 100 | sut其实是一个esd文件,这点分微软的轻松传送很相似。为什么Dism++也选用esd文件呢?首先他体积小,其次esd能完整保存硬链接以及文件流。接下来看看sut布局: 101 | 102 | 103 | \Data\Data.xml 104 |
\…… 105 | 106 | 107 | 其中`\Data\Data.xml`是必选文件,用于记录元数据。元数据记录了这是什么软件以及安装流程。另外Data目录还存放了一些注册表文件,可以配合Data.xml使用。 108 | 109 | 而其他目录则随意命名,用于保存程序文件部分。在AppData的ImageName属性添加引用即可。 110 | 111 | 112 | -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/library/Dism++Library/术语.md: -------------------------------------------------------------------------------- 1 | # Dism++术语 2 | >勿在浮沙筑高台……强烈建议不要跳过此文档,否则你将看不懂后续内容! 3 | 4 | Dism++在术语使用上高度与Dism保持一致,因此如果本文有所遗漏,建议再参考下具体功能说明页,也可以参考[微软MSDN][1]文档。 5 | [1]:https://msdn.microsoft.com/library/windows/hardware/dn938351(v=vs.85).aspx 6 | ### 映像(Image) 7 | 表示一个系统,比如C: 安装了系统,那么我们可以称呼为 映像C:。 8 | 9 | ### 映像文件(Image File) 10 | 一种文件载体,可以保存系统映像。在Dism++中,映像文件有WIM、SWM、ESD以及ISO。 11 | 12 | ### 联机映像(Online) 13 | 表示当前操作系统,一般的说,C盘的系统就是当前系统,系统 - C: 也称之为联机映像。对于Dism命令,`Dism /Online ……` 可快速打开联机映像。对于Dism++,联机映像的名称中会有个标记 —— \*。 14 | 15 | ### 脱机映像(Offline) 16 | 其含义刚好跟联机映像相反,假设当前系统盘是C:,那么其他所有位置(例如D:、F:\\Mount )的映像都称之为脱机映像。 17 | 18 | ### 目标映像(Target) 19 | 表示当前正在处理的映像,比如说,你正在给 映像D: 添加更新,那么 D: 就是目标映像。 20 | 21 | ### 运行宿主(Host) 22 | 表示Dism++的运行平台,也就是当前系统。其路径跟 联机映像 一样。假设当前系统是Windows 7,而你需要处理Windows 10。那么可以说,你的Host是Windows 7,而 Target 是Windows 10。 23 | > 温馨提示:也许你会觉得奇怪,为什么要有Host/Tagget这种概念,这是因为某些低版本的Host系统无法处理高版本系统,比如Win7 Host给Win10集成补丁就很容易出现失败。 24 | 25 | ### WinPE 26 | 一种迷你系统,通常体积比较小,只有300MB左右。用于安装系统或者修复系统问题。 27 | 28 | ### WinRE 29 | 跟WinPE几乎一样,只是WinRE更加侧重于系统修复,并且Vista以后系统自带WinRE,因此我们可以在WinRE做原本在WinPE里做的事情。 30 | 31 | ### 系统体系(Architecture) 32 | 每个程序都有自己的体系,操作系统也不例外。常见的体系有 x86、amd64。其中amd64的系统需要有Wow64子系统才能正常运行x86程序。因此,没有Wow64子系统的系统无法处理x86映像。 33 | > Dism++支持x86、amd64、IA64、arm以及arm64体系作为目标映像,但是Dism++的运行宿主只能为x86或者amd64。 34 | -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/library/Dism++Library/自定义规则.md: -------------------------------------------------------------------------------- 1 | # 自定义规则 2 | 授人以鱼,不如授人以渔。Dism++的能力是有限的,无法覆盖的所有用户的需求。因此给程序添加了自定义规则功能,方便高级用户打造自己的专属工具。 3 | 4 | ## 创建一个空白的自定义规则文件 5 | 我们只需要在Config目录新建一个 Custom\*.xml 这样形式的xml文件即可(\*表示任何字符串,比如Custom1.xml或者Custom我爱我的家.xml,另外文件以UTF8或者Unicode编码保存)。初始文件内容如下: 6 | ```xml 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | ``` 17 | 等所有工作完成后,在将这个xml文件压缩成一个zip,比如Custom1.zip或者Custom我爱我的家.zip。 18 | > 压缩为zip这是为了减少文件体积,避免造成不必要的文件占用。 19 | 20 | ## 垃圾清理规则从负五开始 21 | 下面我们将循序渐进,让你从入门到放弃。说错了,是入门到精通。当然也欢迎大家提供宝贵的意见。 22 | 23 | ### 编写一个最简单的清理规则 24 | 我们都知道 C:\\Windows\\Logs 是系统的日志目录。系统运行时会在此处产生大量日志,而且某些情况还不会自动删除。因此我们需要定期删除此文件。那我们如何通过规则来实现此功能呢? 25 | 26 | ```xml 27 | 28 | 29 | 30 | 31 | 32 | 系统的日志目录,用于存放系统运行日志。 33 | 34 | 临时文件 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | ``` 45 | 我想,聪明的你一定明白了,大概怎么写规则了。至于 General 的完整用法,可以参考引擎白皮书。 46 | 47 | ### 编写带环境变量发清理规则中 48 | 之前的规则你一定发现一个严重的问题。就是清理路径是死的。就只能是清空 `C:\Windows\Logs` 目录。系统盘并不一定是C……,因此这个规则是有瑕疵的。因此我们有了改进版。使用环境变量。 49 | 50 | ```xml 51 | 52 | 53 | 54 | 55 | 系统的日志目录,用于存放系统运行日志。 56 | 临时文件 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | ``` 66 | %SystemRoot%就是一个环境变量,表示C:\\Windows。具体所支持的环境变量,请参考后续文档——环境变量。现在规则适应性大大提高了。 67 | 68 | ### 编写多General清理规则 69 | 我们知道系统相关日志不止一个地方。我们可以把他们收录在一个规则里。比如Windows目录还有各种log文件。比如WindowsUpdate.log、setuperr.log、setupact.log等等。General 语法提供了Query功能可以删除他们。 70 | 71 | ```xml 72 | 73 | 74 | 75 | 系统的日志目录,用于存放系统运行日志。 76 | 临时文件 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | WindowsUpdate.log 85 | setuperr.log 86 | setupact.log 87 | 88 | 89 | 90 | 91 | 92 | 93 | ``` 94 | ### 使用通配改进清理规则 95 | 你一定感觉到这个规则太蠢了,如果后来又新增加了log文件怎么办?其实Query是支持简单的通配符的。将 后缀是 .log的文件全部删除即可。因此我们可以使用通配来调整规则。 96 | 97 | ```xml 98 | 99 | 100 | 101 | 系统的日志目录,用于存放系统运行日志。 102 | 临时文件 103 | 104 | 105 | 106 | 107 | 108 | *.log 109 | 110 | 111 | 112 | 113 | 114 | 115 | ``` 116 | 但是通配也会有问题,假如我们不希望Dism++删除%SystemRoot%\\WindowsUpdate.log。我们可以使用 Excluded 排除不想删除的内容,当然 Excluded也支持通配。 117 | ```xml 118 | 119 | 120 | 121 | 系统的日志目录,用于存放系统运行日志。 122 | 临时文件 123 | 124 | 125 | 126 | 127 | *.log 128 | 129 | WindowsUpdate.log 130 | 131 | 132 | 133 | 134 | 135 | 136 | ``` 137 | -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/library/Dism++Library/隐藏功能.md: -------------------------------------------------------------------------------- 1 | # Dism++隐藏设置 2 | 此处将公开Dism++未在UI中呈现的设置,你可以修改Config\\Config.ini,让这些设置生效。 3 | 4 | | 启用方式 | 功能 5 | | -------- | ------- 6 | |[Dism++]
NotLoadWofadk=1|添加后Dism++将不会在启动时加载Wof驱动,默认情况下Dism++会在Win8以上系统自动加载Wof驱动。如果你的环境比较特殊,可以开启此选项。开启后,WIMBoot以及Compact相关功能可能会受限。 7 | |[WUA]
DisableInstallUpdate=1|添加后Dism++将跳过Windows Update中的更新安装过程,转变为仅下载更新,如果单纯需要收集更新文件的用户可以启用此选项。 8 | |[WUA]
MaxDownloadThread=10|将Windows Update并发下载数调整为10,具体可以根据自己的情况调整,Dism++默认10个线程并发。 9 | |注册表添加值
HKEY_LOCAL_MACHINE\SOFTWARE\Dism++\Hide|隐藏某些挂载映像,某些PE可能存在内置挂载点。启动Dism++时可能会让用户比较郁闷。你可以在你的PE中设置此键。

[HKEY_LOCAL_MACHINE\SOFTWARE\Dism++\Hide]
"D:\\\\7"=dword:00000000

导入后Dism++将默认不显示D:\\7这个挂载映像 10 | |命令行参数:
/ScratchDir "D:\\Temp"|将Dism++临时目录调整为D:\\Temp,具体可以根据自己的情况调整。默认临时目录可用空间不足时可以考虑使用。 11 | -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/library/Quickstart.md: -------------------------------------------------------------------------------- 1 | # 快速入门 2 | 程序的核心功能是清理更新,所以你可能需要在安装更新后才能感受到程序的价值。 3 | 4 | ## 界面布局 5 | 如图所示,顶端的标签可以切换不同的系统`(如果你有多个操作系统)`。左侧为功能列表,可以选择你所需要的功能。对于一般用户来说,直接点击`空间回收`就可以啦。 6 | 7 | ![MainUI](./images/MainUI.png) 8 | 9 | ## 清理系统垃圾 10 |
11 | >建议你不要过于频繁的清理垃圾,尤其是SSD!一般建议一个月清理一次即可。 12 | 13 | ![CleanupUI](./images/CleanupUI.png) 14 | 15 |
16 | 程序启动后,点击`空间回收`,即可看到此界面。然后选中你需要清理的项目,在点击`扫描`(预计可以释放的空间)或者直接点击`清理`(不预估大小,立即删除)。最后如果你有更好的清理项目,点击 `帮助 - 反馈BUG`,提交你的规则。 17 | 18 |
19 | >温馨提示:风险项目使用橙色标识,另外某些项目存在某些副作用,选中后程序将弹出警告框,请务必仔细确认! 20 | 21 | ## 备份系统 22 | 俗话说有“备”无患,现在Dism++ 能够直接将当前系统备份为WIM、ESD,无需进入PE。使用方法很简单,选中当前系统,点击恢复功能 —— 系统备份即可。 23 | 24 | ![BackupImage](./images/BackupImage.png) 25 | 26 | ![BackupImage-WimPath](./images/BackupImage-WimPath.png) 27 |
然后输入WIM文件路径,最后点击确定即可。 28 | >如果WIM文件已经存在,则自动增量到现有的WIM文件,执行增量备份。 29 | 30 | 此外,为了支持系统无法启动时能够还原系统,还需要在 选项 - 详细设置 开启 整合引导菜单,开启后BCD启动项中将多出一个Dism++,你可以在必要时使用此选项来恢复你的系统。 31 | 32 | ## 还原系统 33 | 当系统出问题时,你可以使用之前备份的系统进行还原,快速恢复计算机环境。Dism++为了降低恢复系统的难度,程序支持热还原模式。即用户无需启动PE直接在本机就能还原。如果你的电脑出问题了,你可以启动Dism++,点击恢复功能 - 34 | 系统还原。选择WIM文件路径后,点击确定即可,如下图所示。 35 | 36 | ![RecoveryImage](./images/RecoveryImage.png) 37 | 38 | >温馨提示:如果你的系统已经无法启动,那么可以通过BCD菜单中的Dism++`(需要开启 整合引导菜单)`或者启动PE进行上述步骤。 39 | 40 |
快速入门已经结束,想深入研究的用户可以参考后续文档,祝大家玩的开心。 41 | -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hans/library/start.md: -------------------------------------------------------------------------------- 1 | ![欢迎使用Dism++](../images/logo.png "欢迎使用Dism++") 2 | 3 | ## 关于 Dism++ —— **我们是一线战友!** 4 | 5 | Dism++可以说是一个Dism的GUI版,但是并不依赖Dism,直接基于更底层的CBS(Component Based Servicing Reference)。 6 | 7 | 8 | ### Dism++的特点 9 | * Dism++无需任何Dism组件,即可兼容高低版本所有系统!而微软Dism则需要3个版本。 10 | * Dism++是Dism的交集,提供完全的图形化操作,几乎支持Dism的所有功能以及大量Dism原本所不支持的功能。管理更新、驱动、功能、Appx、可选功能、服务、Compact/WIMboot、系统修复等……放马过来吧。 11 | * Dism++提供了完整的WIM支持(包括ESD捕获、ESD转ISO、释放分段ESD以及直接ISO支持),`值得一提的是,ESD转ISO,Dism++可以直接在内存中解密无需修改硬盘数据。这极大的满足了强迫症患者。` 12 | * Dism++提供了开放的清理以及优化功能,用户可以自定义Dism++规则,来打造专属系统工具。 13 | 14 | [ [BUG反馈](https://github.com/Chuyu-Team/Dism-Multi-language/issues) ] 15 | [ [QQ群 200783396](http://shang.qq.com/wpa/qunwpa?idkey=07a04c095aee1e31f54b82ba98499a5b49aa10185f975946243ba68e0134a34e) ] 16 | 17 | ### 赞助Dism++ 18 | 赞助的费将用于支付服务器费用,如果大家够豪气可能还能支付房租。为了从可持续角度考虑,建议大家每年小额赞助一次,每次大约20RMB即可。 19 | 20 | `温馨提示:赞助并不是等于付费支持,此软件为个人爱好业余维护。BUG反馈以及改进意见并不能保证100%及时响并处理。因此请勿仅仅为了后期服务支持而赞助Dism++。` 21 | 22 | ![donate](../images/donate.png) 23 | 24 | ## Dism++运行要求 25 | 26 | 最小运行平台:NT 6.0或者更高、512MB内存 27 | 28 | 推荐运行平台:NT 6.1或者更高,64位操作系统、8G物理内存+8GB虚拟内存或者更高 29 | 30 | >* 运行平台仅限x86、amd64以及arm64处理器,IA64以及ARM体系仅支持离线模式 31 | * 在没有WOW64支持的环境中(比如纯64 PE),将导致Dism++无法离线处理32位系统。 32 | * 如果运行平台为Windows Vista或者Windows 2008时某些功能将无法使用,比如CompactOS、WIMBoot。 33 | 34 | ## Dism++文件列表 35 | 36 | 以下列表展示了所有Dism++相关文件,你可以根据需要删除你所不需要的内容。懒人请无视以下内容。 37 | 38 | | 文件名称 | 功能说明 39 | | -------- | ------- 40 | |Dism++x64.exe|x64系统的UI,在64位系统中,启动此程序呈现UI。仅x64系统需要,可以考虑删除此文件。 41 | |Dism++x86.exe|x86系统的UI,如果你在x64系统中启动此程序,则自动转向到Dism++x64.exe。仅x86系统需要,可以考虑删除此文件。 42 | |Dism++arm64.exe|arm64位系统的UI,在arm64位系统中,启动此程序呈现UI。仅arm64系统需要,可以考虑删除此文件。 43 | |Config\amd64\bcdboot.exe|提供引导修复功能,原版系统自带此文件,删除没有影响。原版系统用户以及32位系统用户可以删除此文件。 44 | |Config\x86\bcdboot.exe|提供引导修复功能,原版系统自带此文件,删除没有影响。原版系统用户以及64位系统用户可以删除此文件。 45 | |Config\amd64\CBSHost.dll|Dism++API支持模块,删除后x64系统将无法使用Dism++。仅x64系统需要,可以考虑删除此文件。 46 | |Config\x86\CBSHost.dll|Dism++API支持模块,删除后x86系统将无法使用Dism++,64位系统无法脱机处理x86以及arm64系统。不需要脱机处理32位系统的x64以及arm64用户可以考虑删除。 47 | |Config\arm64\CBSHost.dll|Dism++API支持模块,删除后arm64位系统将无法使用Dism++。仅arm64系统需要,用户可以考虑删除此文件。 48 | |Config\amd64\NCleaner.dll|64位NCleaner清理引擎,缺少此文件后某些高级清理功能将无法使用,仅x64系统需要,可以考虑删除此文件。 49 | |Config\x86\NCleaner.dll|32位NCleaner清理引擎,缺少此文件后某些高级清理功能将无法使用,仅x86系统需要,可以考虑删除此文件。 50 | |Config\arm64\NCleaner.dll|arm64 NCleaner清理引擎,缺少此文件后某些高级清理功能将无法使用,仅arm64系统需要,用户可以考虑删除此文件。 51 | |Config\amd64\wimgapi.dll|WIM文件操作支持模块,Win10用户、32位用户或者不需要任何WIM相关功能的用户,那么可以考虑删除。 52 | |Config\x86\wimgapi.dll|WIM文件操作支持模块,Win10用户、64位用户或者不需要任何WIM相关功能的用户,那么可以考虑删除。 53 | |Config\amd64\wofadk.sys
Config\x86\wofadk.sys|提供Compact功能相关支持,不需要脱机处理的Win10用户可以考虑删除此文件。强烈建议不要删除这些文件。 54 | |Config\Plugins|Dism++插件支持,不需要插件的用户可以删除此文件。 55 | |Config\Languages|Dism++的语言文件,以中国为例,只保留zh-Hans.zip即可。 56 | |Config\Data.zip|此文件保存了清理规则,ESD解密KEY等。此文件不允许删除。 57 | |Config\UpdateInfo.zip
Config\UpdateInfoBeta.zip|Dism++更新元数据,用于判断是否存在新版本,以及防止用户新版本降级为老版本。推荐保留,删除后将重新下载。 58 | |Config\default.ui.zip|此文件保存了Dism++的UI。此文件不允许删除。 59 | |Config\wsusscn2.cab|Windows Update数据库文件,用于扫描更新。可以考虑删除。 60 | |Config\include\Dism++.h|仅测试版存在此文件,C Script脚本支持头文件,缺少此文件后C Script脚本将无法使用。 61 | |Config\amd64\CScript.dll|仅测试版存在此文件,64位C Script脚本解析引擎,缺少此文件后C Script脚本将无法使用,32位用户可以考虑删除此文件。 62 | |Config\x86\CScript.dll|仅测试版存在此文件,32位C Script脚本解析引擎,缺少此文件后C Script脚本将无法使用,64位用户可以考虑删除此文件。 63 | -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/ApplyUUPESD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/ApplyUUPESD.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/ApplyWIMBoot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/ApplyWIMBoot.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/BackupImage-WimPath.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/BackupImage-WimPath.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/BackupImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/BackupImage.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/CleanupUI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/CleanupUI.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/CompactOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/CompactOS.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/ExportWIMBoot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/ExportWIMBoot.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/ISOInstallOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/ISOInstallOS.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/InstallUpdates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/InstallUpdates.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/MainUI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/MainUI.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/OpenSession.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/OpenSession.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/RecoveryImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/RecoveryImage.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/SaveISO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/SaveISO.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/ScanUpdates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/ScanUpdates.png -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/sut/DifferDone.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/sut/DifferDone.jpg -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/sut/InstallApp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/sut/InstallApp.jpg -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/sut/MakingSut.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/sut/MakingSut.jpg -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/sut/ScanDiffer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/sut/ScanDiffer.jpg -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/sut/StartInstallApp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/sut/StartInstallApp.jpg -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/sut/StartMakerSut.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/sut/StartMakerSut.jpg -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/sut/SutStart.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/sut/SutStart.jpg -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/sut/ViewData.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/sut/ViewData.jpg -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/images/sut/Wait.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chuyu-Team/Dism-Multi-language/3c8378846cd9d700d3f2b1bf5f93e05e8de43639/www.chuyu.me/zh-Hant/images/sut/Wait.jpg -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/library/$navigation.md: -------------------------------------------------------------------------------- 1 |  2 | #### [關於 Dism++](?file=start.md "返回") 3 | 4 | ##### 1. 快速入門 5 | - [1.1 快速入門](?file=Quickstart.md "快速入門") 6 | - [1.2 Dism 轉 Dism++ 入門](?file=Dism2Dism++.md "Dism轉Dism++入門") 7 | 8 | ##### 2. 進階使用 9 | - [2.1. Dism++ 術語](?file=Dism++Library/術語.md "Dism++術語") 10 | - [2.2. Dism++ 隱藏設定](?file=Dism++Library/隱藏功能.md "Dism++隱藏設定") 11 | - [2.3. 自訂規則](?file=Dism++Library/自訂規則.md "自訂規則") 12 | - [2.4. 規則結構參考](?file=Dism++Library/規則結構參考.md "規則結構參考") 13 | - [2.5. 通用安裝腳本——sut](?file=Dism++Library/Dism++sut.md "通用安裝腳本") 14 | 15 | ##### 3. Dism++ 最佳實踐 16 | - [3.1. 使用 Dism++ 安裝系統](?file=Best/使用Dism++安裝系統.md "使用Dism++安裝系統") 17 | - [3.2. 給 ISO 離線整合更新](?file=Best/給ISO離線整合更新.md "給ISO離線整合更新") 18 | 19 | -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/library/Best/使用Dism++安裝系統.md: -------------------------------------------------------------------------------- 1 | # 使用 Dism++ 安裝系統 2 | 安裝系統是一個簡單而又複雜的活。有的僅僅為了安裝系統,先把 ESD 轉為 ISO。有的因為安裝器不支援 ESD,而轉換為 WIM。還有的在解壓縮 ISO……這根本原因是人們很多時候難以靈活運用現有的工具。君子生非異也,善假於物也。本文將透過一些實例,幫助大家駕馭 Dism++。 3 | 4 | ## 前言 5 | ### 啟動 Dism++ RE 模式 6 | 大家可能聽說過 PE,沒見過 RE。其實 RE 可以說跟 PE 是一樣的,也就是說 PE 能做什麼,RE 也能做什麼。另外 Vista 以後的系統都自帶 RE,所以我們平常的工作完全可以使用 RE 來解決,無需使用 PE。 7 | 8 | 是不是心動了?Dism++ 為了簡化 RE 使用流程,特意引入了 RE 模式。其作用就是重新啟動系統,然後啟動 RE,在啟動 Dism++。 9 | 10 | 使用方法也很簡單,在選單按下 `恢復功能 - 在 RE 中執行`。首次啟用需要配置一些設定,操作完成後重新啟動電腦就可以了。 11 | 12 | > 在 RE 模式中,Dism++ 可以格式化系統槽。如果需要全新安裝系統,又不想使用 PE,可以使用此模式。 13 | 14 | ### Dism++ 添加引導支援概況 15 | #### 傳統 BIOS 以及 UEFI 支援概況 16 | Dism++ 完全支援標準的傳統 BIOS 以及 UEFI 引導。但是要看清楚,是支援標準的引導,一些非標準的是不支援的。典型的 UEFI 啟動的系統使用 MBR 磁碟是不支援的。 17 | 18 | 這是因為 Dism++ 有自動檢測邏輯,發現系統槽是 MBR 格式,那麼添加引導時自動按照傳統 BIOS 啟動方式進行處理。反之,發現 GPT 分區則安裝 UEFI 方式處理。 19 | 20 | 因此那些系統槽是 MBR 卻要用 UEFI 啟動,或者系統槽是 GPT 卻要上傳統 BIOS 啟動。這些情況,Dism++ 的處理結果是不能讓人滿意的,這些用戶建議手動配置引導。 21 | #### 多硬碟引導支援概況 22 | Dism++ 完美支援多硬碟引導。可以為多個硬碟設定獨立引導,也可以使用共享引導。但是多硬碟引導設定往往需要人工干預,因為程序並不知道你需要獨立引導,還是共享引導。 23 | 24 | Dism++ 預設使用獨立引導模式,需要調整為共享引導的用戶,在添加引導時,請點擊`更多`,然後手動調整。 25 | 26 | #### 隱藏啟動分區支援概況 27 | Dism++ 完美支援隱藏啟動分區,用戶無需手動分配盤符。添加引導信息時,程序能直接操作隱藏的啟動分區,無需分配盤符。特別是 UEFI 用戶,放馬過來吧。 28 | 29 | #### VHD/VHDX 啟動支援概況 30 | Dism++ 完美支援配置 VHD 啟動,程序檢測到系統槽是 VHD 時,會自動轉向到 VHD 模式,無需人工干預。不過,值得注意的是 Windows 7 旗艦版才支援 VHD 啟動。另外只有 Windows 8 以上系統才能使用 VHDX,到時搞了半天…… 31 | 32 | 最後有要扯到 傳統 BIOS 以及 UEFI 支援情況。VHD 的分區類型跟啟動盤的分區類型必須一致,不然 Dism++ 沒法正常配置引導。比如 VHD 是 GPT 那麼啟動盤也需要是 GPT,反之亦然。 33 | 34 | ## 從 ISO 安裝系統 35 | ISO 是最常見的系統載體,為此 Dism++ 提供了直接的 ISO 支援。你可以直接使用 ISO 安裝系統,無需掛載 ISO 或者解壓縮 ISO。 36 | > Dism++ 內建了檔案虛擬化技術,可以將檔案流虛擬為一個檔案。因此 Dism++ 可以直接釋放 ISO 裡的 install.wim。 37 | 38 | 使用方法也很簡單,在選單中,點擊檔案 - 釋放映像 即可。記得勾選 `添加引導`。`格式化`這個選項可以根據自己的需要使用,如果勾選此選項,會把的選擇的系統槽進行清空。 39 | 40 | ![ISOInstallOS](./images/ISOInstallOS.png) 41 | 42 | 上圖中,將 ISO 中的系統安裝到 D 盤,同時對 D 盤進行格式化。 43 | 44 | 點擊目標映像右側的下拉框,可以切換系統,確認無誤後按下確定即可。 45 | 46 | > 如果你需要格式化目前系統槽,則上述操作必須在 RE 或者 PE 等其他系統中進行。 47 | 48 | 49 | ## 從 ESD(包括加密 ESD 以及 UUP ESD)安裝系統 50 | 從 Windows 8 以後,微軟會定期從 Windows Update 推送 ESD。而 ESD 中就包含了安裝系統所必需的檔案。我們可以直接使用 ESD 進行系統安裝。哪怕這個 ESD 是加密的或者 UUP 分段 ESD。 51 | > Dism++ 內建了檔案虛擬化技術,加密 ESD 會在記憶體中解密,然後再釋放系統,此過程並不會修改原始 ESD 檔案。 52 | 53 | 使用方法也很簡單,在選單中,點擊檔案 - 釋放映像 即可。記得勾選 `添加引導`。`格式化`這個選項可以根據自己的需要使用,如果勾選此選項,會把的選擇的系統槽進行清空。 54 | > 釋放UUP ESD時,可以選擇 UUP 資料夾中的 ActionList.xml(推薦),也可以直接選擇頂級 ESD(比如 Professional_zh-cn.esd)。 55 | 56 | ![ApplyUUPESD](./images/ApplyUUPESD.png) 57 | 58 | 如上圖,跟 ISO 釋放稍微不同的是,目標映像需要選擇作業系統,如上圖所示目標映像,千萬別傻傻的選擇 Windows Setup。 59 | 60 | 點擊目標映像右側的下拉框,可以切換系統,確認無誤後按下確定即可。 61 | 62 | > 如果你需要格式化目前系統槽,則上述操作必須在 RE 或者 PE 等其他系統中進行。 63 | 64 | ## 使用 Compact 技術安裝系統 65 | Compact 是 Windows 10 新引入的壓縮啟動技術。一般減少 1/3 的空間佔用,同時幾乎不影響到 IO 效能。 66 | 67 | 在 Dism++ 中,你可以使用 Compact 技術安裝 Windows 7 以上所有系統。程序將自動配置驅動並解壓縮核心啟動檔案。 68 | 69 | > 需要注意的是,要使用 Compact 技術,Host 系統必須是 Windows 7 或者更高。另外在 Windows 7 中預設不會載入 WofAdk 驅動。Win 7 用戶使用前,請先在 選項 - 詳細設定。勾選載入 WofADK 驅動,然後點擊確定。 70 | 71 | Comacpt 技術使用也非常簡單,在釋放映像時(支援 WIM、SWM、ESD、UUP ESD 以及 ISO),勾選 Compact,添加引導即可。如下圖所示: 72 | 73 | ![CompactOS](./images/CompactOS.png) 74 | 75 | 操作完成後,重新啟動系統即可啟動 Compact 技術安裝的系統了。 76 | 77 | ## 使用 WIMBoot 技術安裝系統 78 | WIMBoot 技術可以減少更多的空間佔用,同時充分的利用了備份區,而且由於檔案集中存放,往往可以提供更佳的 IO 效能。看似一切很美好,但是有個致命問題,長期使用 WIMBoot 會導致系統槽體積越來越大。最後表現比 Compact 還渣…… 79 | > WIMBoot 技術是 Compact 的前身,由於有個體積越來越大問題,所以被拋棄使用。Dism++ 建議優先考慮使用 Compact。 80 | 81 | 在 Dism++ 中,你可以使用 WIMBoot 技術安裝 Windows 7 以上所有系統。程序將自動配置驅動並解壓縮核心啟動檔案。 82 | 83 | > 需要注意的是,要使用 WIMBoot 技術,Host 系統必須是 Windows 7 或者更高。另外在 Windows 7 中預設不會載入 WofAdk 驅動。Win 7 用戶使用前,請先在 選項 - 詳細設定。勾選載入 WofADK 驅動,然後點擊確定。 84 | 85 | WIMBoot 技術使用略微比 Compact 麻煩一點,首先你需要準備一個 WIMBoot 壓縮類型的 wim 檔案。 86 | > PS: 雖然 Dism++ 也支援快速壓縮以及最大壓縮的 wim 檔案以 WIMBoot 方式啟動,但是 Dism++ 建議還是轉換到 WIMBoot 壓縮然後繼續,以獲得更加效能。 87 | 88 | ![ExportWIMBoot](./images/ExportWIMBoot.png) 89 | 90 | 如上圖所示,我們把 ISO 裡面的 Windows 7 旗艦版,選擇 WIMBoot 壓縮,然後導出到`G:\Win7 WIMBoot.wim`。 91 | 92 | 轉換完成後,在使用`檔案 - 釋放映像`,並勾選 WIMBoot 即可,如下圖所示: 93 | 94 | ![ApplyWIMBoot](./images/ApplyWIMBoot.png) 95 | 96 | 把剛才得到的`G:\Win7 WIMBoot.wim`,使用 WIMBoot 技術,釋放到 D盤,格式化並添加引導。 97 | 98 | OK,現在大功告成,操作完成後,重新啟動就能看到 WIMBoot 啟動的系統了。 -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/library/Best/給ISO離線整合更新.md: -------------------------------------------------------------------------------- 1 | # 給 ISO 離線整合更新 2 | 大家是否厭倦了每次安裝更新後又要補一堆更新的感覺?使用微軟的 Dism 補更新又需要自己收集更新,而且每個月有新更新,還有舊更新被取代。現在 Dism++ 重建了 Windows Update,直接從 WSUS 伺服器中匯出更新資料庫,全自動取得最新更新,自動剔除過期舊更新,在透過 CBS 判斷系統是否需要此更新。下面來看看怎麼使用吧。 3 | 4 | ## 解壓縮 ISO 5 | 為了處理 ISO 裡面的 install.wim。我們先把 ISO 檔解壓縮到硬碟。這一步,你可以使用壓縮軟體,比如 7z 等,右鍵解壓縮即可。假設我們解壓縮到`D:\Temp`。 6 | 7 | ## 掛載 install.wim 8 | 為了讓 Dism++ 能辨識到系統,我們需要掛載 install.wim。`掛載映像`非常簡單,在選單點擊 `檔案 - 掛載映像`。 9 | 10 | 映像檔案路徑我們設定為`D:\Temp\Sources\install.wim`。 11 | 掛載路徑我們設定為`D:\Mount`(必須存在)。 12 | 如果你需要調整映像,則執行點擊目標映像,切換需要掛載的系統。(比如我這裡選擇了 Win7 旗艦版) 13 | 14 | 最後按下確定 15 | 16 | ## 掃描並安裝更新 17 | 點擊`開啟工作階段`,然後點擊`更新管理`,在點擊`掃描`,掃描完成後程式會列出所有可以安裝的更新,選取需要的更新點點擊安裝即可 18 | 貼心提醒:Dism++ 會把更新快取在 程式目錄的 "Config\\UpdateCache"資料夾,以後安裝時 Dism++ 將直接使用上次的快取。 19 | 20 | ![OpenSession](./images/OpenSession.png) 21 | 22 | 首先開啟工作階段 23 | 24 | ![ScanUpdates](./images/ScanUpdates.png) 25 | 26 | 在更新管理中點擊掃描 27 | 28 | ![InstallUpdates](./images/InstallUpdates.png) 29 | 30 | 掃描完成後,選擇需要安裝的更新,然後點擊`安裝`即可,然後耐心的等待安裝完成…… 31 | 32 | > 貼心提醒:
1:如果你不喜歡 Win10 自帶的一堆 Appx,你還可以在空間回收中使用過期 Appx 清理,這樣就從系統安裝包內就刪除了 Appx,安裝系統後也沒有自帶 Appx 了。
33 | 2:安裝完畢後,請重新掃描。因為更新是以分批推送的,需要反覆掃描安裝多次,才能完成更新安裝。
34 | 3:安裝更新後進行過期 WinSxS 組件清理很可能導致失敗。這是因為更新掛起導致,解決辦法只能安裝到虛擬機。 35 | 36 | ## 儲存 install.wim 37 | 操作成功後,你可以點擊檔案選擇`儲存映像`,並選擇覆蓋儲存。完成後點擊`移除映像`。 38 | 39 | ### 最佳化 wim 檔案體積 40 | 由於儲存映像會引入垃圾資料,增大檔案體積。要得到最優體積,請點擊 檔案 - 開啟映像檔案。將處理的映像匯出到`D:\Temp\Sources\install2.wim`。 41 | 42 | 然後把`D:\Temp\Sources\install2.wim`改名為`install.wim`。 43 | 44 | ## 儲存 ISO 45 | Dism++ 中的青蛙外掛程式提供了 ISO 產生器,它可以製作雙啟動(Boot) ISO(同時支援傳統 BIOS 與 UEFI 啟動)。 46 | 47 | ![SaveISO](./images/SaveISO.png) 48 | 49 | 如圖所示,我們把 D:\Temp,中的內容儲存為`D:\Win7New.iso`。 50 | 51 | > 貼心提醒:如果你要同時處理 Win7 家用版、專業版、旗艦版,那麼我建議你想處理家用版,然後其他版本可以透過系統版本升級進行處理。也可以多個版本同時整合更新,Dism++ 支援多個映像同時整合更新。 -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/library/Dism++Library/Dism++sut.md: -------------------------------------------------------------------------------- 1 | # 通用安裝腳本——sut 2 | 通用安裝腳本用於將軟體整合到離線系統,並且整合是原生整合,而非透過應答實現。 這意味著可以大大縮短系統安裝時間。 3 | 4 | [ [下載SutWizard 1.0.0.2](HTTP://cdn.chuyu.me/SutWizard_1.0.0.2_7ba6e8933b4b8ab5c85d09d435a9f8585d2764e3.zip) ] 5 | 6 | 7 | ## 核心思想 8 | 安裝一個軟體其實很大程度上可以理解為,釋放檔案然後在匯入相關登錄檔。因此理論上我們只需要把這些動作擷取,得到一個差異集合。那麼就可以轉移到其他相似的系統中。 9 | sut 通用安裝腳本就是如此,第一階段:釋放相關檔案,第二階段:匯入登錄檔以及其他行為。而儲存為一個 sut 檔案是為了方便以後再次使用。 10 | 為了降低 sut 製作門檻,我還提供了一個工具 SutWizard,用於自動化產生差異以及製作 sut 檔案。有需要的人士可以自行下載。 11 | 12 | 13 | ## Sut一般製作流程 14 | 15 | 要進行此過程,你必須準備`SutWizard`以及你需要安裝的應用程式。 16 | 17 | 18 | ### 啟動 SutWizard (快速模式) 19 | 20 | 21 | 選擇快速模式,然後按下一步。 22 | 23 | ! [](.. /images/sut/SutStart.jpg) 24 | 25 | 26 | 等待快照完成。 27 | 28 | ! [](.. /images/sut/Wait.jpg) 29 | 30 | 31 | 過一段時間後,你將看到提示。 這時進入第二階段,安裝你的應用程式。 32 | 33 | ! [](.. /images/sut/InstallApp.jpg) 34 | 35 | 36 | ### 安裝應用程式 37 | 當程式提醒說你可以安裝應用程式後,按兩下你需要安裝的應用程式。這裡我們以 VC 2008 為例。操作過程中請勿關閉 SutWizard! 38 | 39 | 手動按兩下你需要的應用程式,然後讓他安裝完成。 40 | 41 | ! [](.. /images/sut/StartInstallApp.jpg) 42 | 43 | 44 | ### SutWizard產生差異資料 45 | 46 | VC 2008 安裝完成後,按下完成。這時程式會顯示正在產生差異。稍等片刻…… 47 | 48 | ! [](.. /images/sut/ScanDiffer.jpg) 49 | 50 | 51 | 差異產生完成,程式會把資料放在這個目錄。 52 | 53 | ! [](.. /images/sut/DifferDone.jpg) 54 | 55 | ### 優化差異資料 56 | 一般情況下有較多垃圾,建議你手動刪除不必要的資料。 57 | 打開這個目錄後,你會看到`AppData`目錄以及`Data`目錄。 AppData用於存在程式檔案部分,你可以手動刪除一些意外引入的垃圾檔。 58 | 59 | Data 這是軟體的登錄檔以及規則檔案。同樣的登錄檔也可能意外引入大量垃圾,建議手動刪除後繼續。 60 | 61 | 在來說說`Data\Data.xml`,它是規則檔。 打開後你一般可以看到如下所示: 62 | 63 | ! [](.. /images/sut/ViewData.jpg) 64 | 65 | 其中 `IsInstallable` 節點必須填寫,註釋中也說了這個節點用於判斷此軟體是否適用目標系統。由於這個sut是在Windows 10 15063 x64 裡面製作的,因此一般的我們可以這樣寫: 66 | 67 | ```xml 68 | 69 | 70 | 71 | 72 | 9 73 | 74 | 10.0.15063 75 | 76 | 77 | ``` 78 | 79 | 簡單的就這樣了,接下來你可以打包為sut。 80 | 81 | 82 | ### 打包Sut 83 | 84 | 同樣的,此過程我們需要SutWizard,不過選擇第三項,然後點擊繼續。 85 | 86 | ! [](.. /images/sut/StartMakerSut.jpg) 87 | 88 | 89 | 填寫剛才的目錄,以及輸入Sut檔保存路徑,點擊完成。 稍等片刻...... 知道提示完成。 90 | 91 | ! [](.. /images/sut/MakingSut.jpg) 92 | 93 | 94 | 這時你就可以將`C:\MyFirst.sut` 應用於其他的Windows 10 15063 x64。 如果你希望你的腳本擁有更加廣泛的適用性。 請自行編輯Data.xml,讓你的Sut更加通用。 95 | 96 | 97 | 98 | 99 | ## sut結構說明 100 | sut其實是一個esd檔案,這點分微軟的輕鬆傳送很相似。 為什麼Dism++也選用esd檔案呢? 首先他體積小,其次esd能完整保存硬連結以及檔案流。 接下來看看sut佈局: 101 | 102 | 103 | \Data\Data.xml 104 |
\...... 105 | 106 | 107 | 其中`\Data\Data.xml`是必選檔,用於記錄中繼資料。 中繼資料記錄了這是什麼軟體以及安裝流程。 另外Data目錄還存放了一些登錄檔,可以配合Data.xml使用。 108 | 109 | 而其他目錄則隨意命名,用於保存程式檔案部分。 在AppData的ImageName屬性增加參考即可。 110 | 111 | 112 | -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/library/Dism++Library/Dism++sut.md.temp: -------------------------------------------------------------------------------- 1 | # 通用安裝腳本——sut 2 | 通用安裝腳本用於將軟體整合到離線系統,並且整合是原生整合,而非透過應答實現。這意味著可以大大縮短系統安裝時間。 3 | 4 | [ [下載 SutWizard 1.0.0.2](http://cdn.chuyu.me/SutWizard_1.0.0.2_7ba6e8933b4b8ab5c85d09d435a9f8585d2764e3.zip) ] 5 | 6 | 7 | ## 核心思想 8 | 安裝一個軟體其實很大程度上可以理解為,釋放檔案然後在匯入相關登錄檔。因此理論上我們只需要把這些動作擷取,得到一個差異集合。那麼就可以轉移到其他相似的系統中。 9 | sut 通用安裝腳本就是如此,第一階段:釋放相關檔案,第二階段:匯入登錄檔以及其他行為。而儲存為一個 sut 檔案是為了方便以後再次使用。 10 | 為了降低 sut 製作門檻,我還提供了一個工具 SutWizard,用於自動化產生差異以及製作 sut 檔案。有需要的人士可以自行下載。 11 | 12 | 13 | ## Sut 一般製作流程 14 | 15 | 要進行此過程,你必須準備`SutWizard`以及你需要安裝的應用程式。 16 | 17 | 18 | ### 啟動 SutWizard (快速模式) 19 | 20 | 21 | 選擇快速模式,然後按下一步。 22 | 23 | ![](../images/sut/SutStart.jpg) 24 | 25 | 26 | 等待快照完成。 27 | 28 | ![](../images/sut/Wait.jpg) 29 | 30 | 31 | 過一段時間後,你將看到提示。這時進入第二階段,安裝你的應用程式。 32 | 33 | ![](../images/sut/InstallApp.jpg) 34 | 35 | 36 | ### 安裝應用程式 37 | 當程式提醒說你可以安裝應用程式後,按兩下你需要安裝的應用程式。這裡我們以 VC 2008 為例。操作過程中請勿關閉 SutWizard! 38 | 39 | 手動按兩下你需要的應用程式,然後讓他安裝完成。 40 | 41 | ![](../images/sut/StartInstallApp.jpg) 42 | 43 | 44 | ### SutWizard 產生差異數據 45 | 46 | VC 2008 安裝完成後,按下完成。這時程式會顯示正在產生差異。稍等片刻…… 47 | 48 | ![](../images/sut/ScanDiffer.jpg) 49 | 50 | 51 | 差異產生完成,程序會把數據放在這個目錄。 52 | 53 | ![](../images/sut/DifferDone.jpg) 54 | 55 | ### 優化差異數據 56 | 一般情況下有較多垃圾,建議你手動刪除不必要的數據。 57 | 打開這個目錄後,你會看到`AppData`目錄以及`Data`目錄。AppData 用於存在程序檔案部分,你可以手動刪除一些意外引入的垃圾檔案。 58 | 59 | Data 這是軟體的登錄檔以及規則檔案。同樣的登錄檔也可能意外引入大量垃圾,建議手動刪除後繼續。 60 | 61 | 在來說說`Data\Data.xml`,它是規則檔案。打開後你一般可以看到如下所示: 62 | 63 | ![](../images/sut/ViewData.jpg) 64 | 65 | 其中 `IsInstallable` 節點必須填寫,註釋中也說了這個節點用於判斷此軟體是否適用目標系統。由於這個sut是在Windows 10 15063 x64里面製作的,因此一般的我們可以這樣寫: 66 | 67 | ```xml 68 | 69 | 70 | 71 | 72 | 9 73 | 74 | 10.0.15063 75 | 76 | 77 | ``` 78 | 79 | 簡單的就這樣了,接下來你可以打包為sut。 80 | 81 | 82 | ### 打包Sut 83 | 84 | 同樣的,此過程我們需要SutWizard,不過選擇第三項,然後點擊繼續。 85 | 86 | ![](../images/sut/StartMakerSut.jpg) 87 | 88 | 89 | 填寫剛才的目錄,以及輸入Sut檔案保存路徑,點擊完成。稍等片刻……知道提示完成。 90 | 91 | ![](../images/sut/MakingSut.jpg) 92 | 93 | 94 | 這時你就可以將`C:\MyFirst.sut` 應用於其他的Windows 10 15063 x64。如果你希望你的腳本擁有更加廣泛的適用性。請自行編輯Data.xml,讓你的Sut更加通用。 95 | 96 | 97 | 98 | 99 | ## sut結構說明 100 | sut其實是一個esd檔案,這點分微軟的輕鬆傳送很相似。為什麼Dism++也選用esd檔案呢?首先他體積小,其次esd能完整保存硬鏈接以及檔案流。接下來看看sut佈局: 101 | 102 | 103 | \Data\Data.xml 104 |
\…… 105 | 106 | 107 | 其中`\Data\Data.xml`是必選檔案,用於記錄元數據。元數據記錄了這是什麼軟體以及安裝流程。另外Data目錄還存放了一些登錄檔檔案,可以配合Data.xml使用。 108 | 109 | 而其他目錄則隨意命名,用於保存程序檔案部分。在AppData的ImageName屬性添加引用即可。 110 | 111 | 112 | -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/library/Dism++Library/自訂規則.md: -------------------------------------------------------------------------------- 1 | # 自訂規則 2 | 授人以魚,不如授人以漁。Dism++ 的能力是有限的,無法覆蓋的所有使用者的需求。因此給程式新增了自訂規則功能,進階用戶打造自己的專屬工具。 3 | 4 | ## 建立一個空白的自訂規則檔案 5 | 我們只需要在 Config 目錄新增一個 Custom\*.xml 這樣形式的 xml 檔案即可(\*表示任何字串,比如 Custom1.xml 或者 Custom我愛我的家.xml,另外檔案以 UTF8 或者 Unicode 編碼儲存)。初始檔案內容如下: 6 | ```xml 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | ``` 17 | 等所有工作完成後,在將這個 xml 檔案壓縮成一個 zip,比如 Custom1.zip 或者 Custom我愛我的家.zip。 18 | > 壓縮為 zip 這是為了減少檔案容量,避免造成不必要的檔案佔用。 19 | 20 | ## 垃圾清理規則從負五開始 21 | 下面我們將循序漸進,讓你從入門到放棄。說錯了,是入門到精通。當然也歡迎大家提供寶貴的意見。 22 | 23 | ### 編寫一個最簡單的清理規則 24 | 我們都知道 C:\\Windows\\Logs 是系統的日誌目錄。系統執行時會在此處產生大量日誌,而且某些情況還不會自動刪除。因此我們需要定期刪除此檔案。那我們如何透過規則來實現此功能呢? 25 | 26 | ```xml 27 | 28 | 29 | 30 | 31 | 32 | 系統的日誌目錄,用於存放系統執行日誌。 33 | 34 | 臨時檔案 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | ``` 45 | 我想,聰明的你一定明白了,大概怎麼寫規則了。至於 General 的完整用法,可以參考引擎白皮書。 46 | 47 | ### 編寫帶環境變數發清理規則中 48 | 之前的規則你一定發現一個嚴重的問題。就是清理路徑是死的。就只能是清空 `C:\Windows\Logs` 目錄。系統槽並不一定是 C……,因此這個規則是有瑕疵的。因此我們有了改進版。使用環境變數。 49 | 50 | ```xml 51 | 52 | 53 | 54 | 55 | 系統的日誌目錄,用於存放系統執行日誌。 56 | 臨時檔案 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | ``` 66 | %SystemRoot% 就是一個環境變數,表示 C:\\Windows。具體所支援的環境變數,請參考後續文件——環境變數。現在規則適應性大大提高了。 67 | 68 | ### 編寫多 General 清理規則 69 | 我們知道系統相關日誌不止一個地方。我們可以把他們收錄在一個規則裡。比如 Windows 目錄還有各種 log 檔案。比如 WindowsUpdate.log、setuperr.log、setupact.log 等等。General 語法提供了 Query 功能可以刪除他們。 70 | 71 | ```xml 72 | 73 | 74 | 75 | 系統的日誌目錄,用於存放系統執行日誌。 76 | 臨時檔案 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | WindowsUpdate.log 85 | setuperr.log 86 | setupact.log 87 | 88 | 89 | 90 | 91 | 92 | 93 | ``` 94 | ### 使用通配改進清理規則 95 | 你一定感覺到這個規則太蠢了,如果後來又新增加了 log 檔案怎麼辦?其實 Query 是支援簡單的萬用字元的。將 後綴是 .log 的檔案全部刪除即可。因此我們可以使用通配來調整規則。 96 | 97 | ```xml 98 | 99 | 100 | 101 | 系統的日誌目錄,用於存放系統執行日誌。 102 | 臨時檔案 103 | 104 | 105 | 106 | 107 | 108 | *.log 109 | 110 | 111 | 112 | 113 | 114 | 115 | ``` 116 | 但是通配也會有問題,假如我們不希望 Dism++ 刪除 %SystemRoot%\\WindowsUpdate.log。我們可以使用 Excluded 排除不想刪除的內容,當然 Excluded 也支援通配。 117 | ```xml 118 | 119 | 120 | 121 | 系統的日誌目錄,用於存放系統執行日誌。 122 | 臨時檔案 123 | 124 | 125 | 126 | 127 | *.log 128 | 129 | WindowsUpdate.log 130 | 131 | 132 | 133 | 134 | 135 | 136 | ``` 137 | -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/library/Dism++Library/術語.md: -------------------------------------------------------------------------------- 1 | # Dism++ 術語 2 | >勿在浮沙築高台……強烈建議不要跳過此文件,否則你將看不懂後續內容! 3 | 4 | Dism++ 在術語使用上高度與 Dism 保持一致,因此如果本文有所遺漏,建議再參考下具體功能說明頁,也可以參考[微軟MSDN][1]文件。 5 | [1]:https://msdn.microsoft.com/library/windows/hardware/dn938351(v=vs.85).aspx 6 | ### 映像(Image) 7 | 表示一個系統,比如 C: 安裝了系統,那麼我們可以稱呼為 映像 C:。 8 | 9 | ### 映像檔(Image File) 10 | 一種檔案載體,可以儲存系統映像。在 Dism++ 中,映像檔有 WIM、SWM、ESD 以及 ISO。 11 | 12 | ### 連線映像(Online) 13 | 表示目前作業系統,一般的說,C: 的系統就是目前系統,系統 - C: 也稱之為連線映像。對於 Dism 命令,`Dism /Online ……` 可快速開啟連線映像。對於 Dism++,連線映像的名稱中會有個標記 —— \*。 14 | 15 | ### 離線映像(Offline) 16 | 其含義剛好跟連線映像相反,假設目前系統磁碟是 C:,那麼其他所有位置(例如 D:、F:\\Mount )的映像都稱之為離線映像。 17 | 18 | ### 目標映像(Target) 19 | 表示目前正在處理的映像,比如說,你正在給 映像 D: 增加更新,那麼 D: 就是目標映像。 20 | 21 | ### 執行宿主(Host) 22 | 表示 Dism++ 的執行平台,也就是目前系統。其路徑跟 連線映像 一樣。假設目前系統是 Windows 7,而你需要處理 Windows 10。那麼可以說,你的 Host 是 Windows 7,而 Target 是 Windows 10。 23 | > 貼心提醒:也許你會覺得奇怪,為什麼要有 Host/Target 這種概念,這是因為某些舊版本的 Host 系統無法處理新版本系統,比如 Win 7 Host 給 Win 10 整合更新就很容易出現失敗。 24 | 25 | ### WinPE 26 | 一種迷你系統,通常容量比較小,只有 300 MB 左右。用於安裝系統或者修復系統問題。 27 | 28 | ### WinRE 29 | 跟 WinPE 幾乎一樣,只是 WinRE 更加側重於系統修復,並且 Vista 以後系統自帶 WinRE,因此我們可以在 WinRE 做原本在 WinPE 裡做的事情。 30 | 31 | ### 系統架構(Architecture) 32 | 每個程式都有自己的架構,作業系統也不例外。常見的架構有 x86、amd64。其中 amd64 的系統需要有 Wow64 子系統才能正常執行 x86 程式。因此,沒有 Wow64 子系統的系統無法處理 x86 映像。 33 | > Dism++支援 x86、amd64、IA64、arm 以及 arm64 架構作為目標映像,但是 Dism++ 的執行宿主只能為 x86 或者 amd64。 34 | -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/library/Dism++Library/隱藏功能.md: -------------------------------------------------------------------------------- 1 | # Dism++ 隱藏設定 2 | 此處將公開 Dism++ 未在 UI 中呈現的設定,你可以修改 Config\\Config.ini,讓這些設定生效。 3 | 4 | | 啟用方式 | 功能 5 | | -------- | ------- 6 | |[Dism++]
NotLoadWofadk=1|新增後 Dism++ 將不會在啟動時載入 Wof 驅動,預設情況下 Dism++ 會在 Win 8 以上系統自動載入 Wof 驅動。如果你的環境比較特殊,可以開啟此選項。開啟後,WIMBoot 以及 Compact 相關功能可能會受限。 7 | |[WUA]
DisableInstallUpdate=1|新增後 Dism++ 將跳過 Windows Update 中的更新安裝過程,轉變為只下載更新,如果單純需要收集更新檔案的使用者可以啟用此選項。 8 | |[WUA]
MaxDownloadThread=10|將 Windows Update 同時下載數調整為 10,具體可以根據自己的情況調整,Dism++ 預設 10 個同時執行緒。 9 | |登錄檔新增值
HKEY_LOCAL_MACHINE\SOFTWARE\Dism++\Hide|隱藏某些掛載映像,某些 PE 可能存在內建掛載點。啟動 Dism++ 時可能會讓使用者較為鬱悶。你可以在你的 PE 中設定此鍵值。

[HKEY_LOCAL_MACHINE\SOFTWARE\Dism++\Hide]
"D:\\\\7"=dword:00000000

匯入後 Dism++ 將預設不顯示 D:\\7 這個掛載映像 10 | |命令列參數:
/ScratchDir "D:\\Temp"|將 Dism++ 臨時目錄調整為 D:\\Temp,具體可以根據自己的情況調整。預設臨時目錄可用空間不足時可以考慮使用。 11 | -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/library/Quickstart.md: -------------------------------------------------------------------------------- 1 | # 快速入門 2 | 程式的核心功能是清理更新,所以你可能需要在安裝更新後才能感受到程式的價值。 3 | 4 | ## 介面布局 5 | 如圖所示,頂端的標籤可以切換不同的系統`(如果你有多個作業系統)`。左側為功能列表,可以選擇你所需要的功能。對於一般使用者來說,直接點擊`空間回收`就可以啦。 6 | 7 | ![MainUI](./images/MainUI.png) 8 | 9 | ## 清理系統垃圾 10 |
11 | >建議你不要過於頻繁的清理垃圾,尤其是 SSD!一般建議一個月清理一次即可。 12 | 13 | ![CleanupUI](./images/CleanupUI.png) 14 | 15 |
16 | 程式啟動後,點擊`空間回收`,即可看到此介面。然後選中你需要清理的項目,在點擊`掃描`(預計可以釋放的空間)或者直接點擊`清理`(不預估大小,立即刪除)。最後如果你有更好的清理項目,點擊 `說明 - 意見反映`,提出你的規則。 17 | 18 |
19 | >貼心提醒:風險項目使用橙色標示,另外某些項目存在某些副作用,選取後程式將跳出警告框,請務必仔細確認! 20 | 21 | ## 備份系統 22 | 俗話說有「備」無患,現在 Dism++ 能夠直接將目前系統備份為 WIM、ESD,無需進入 PE。使用方法很簡單,選取目前系統,點擊恢復功能 —— 系統備份即可。 23 | 24 | ![BackupImage](./images/BackupImage.png) 25 | 26 | ![BackupImage-WimPath](./images/BackupImage-WimPath.png) 27 |
然後輸入 WIM 檔案路徑,最後點擊確定即可。 28 | >如果 WIM 檔案已經存在,則自動增量到現有的 WIM 檔案,執行增量備份。 29 | 30 | 此外,為了支援系統無法啟動時能夠還原系統,還需要在 選項 - 詳細設定 開啟 整合 BCD boot 選單,開啟後 BCD 啟動項目中將多出一個 Dism++,你可以在必要時使用此選項來恢復你的系統。 31 | 32 | ## 還原系統 33 | 當系統出問題時,你可以使用之前備份的系統進行還原,快速恢復電腦環境。Dism++ 為了降低恢復系統的難度,程式支援熱還原模式。即使用者無需啟動 PE 直接在本機就能還原。如果你的電腦出問題了,你可以啟動 Dism++,點擊恢復功能 - 34 | 系統還原。選擇 WIM 檔案路徑後,點擊確定即可,如下圖所示。 35 | 36 | ![RecoveryImage](./images/RecoveryImage.png) 37 | 38 | >貼心提醒:如果你的系統已經無法啟動,那麼可以透過 BCD 選單中的 Dism++`(需要開啟 整合 BCD boot 選單)`或者啟動 PE 進行上述步驟。 39 | 40 |
快速入門已經結束,想深入研究的使用者可以參考後續文件,祝大家玩的開心。 41 | -------------------------------------------------------------------------------- /www.chuyu.me/zh-Hant/library/start.md: -------------------------------------------------------------------------------- 1 | ![歡迎使用 Dism++](../images/logo.png "歡迎使用 Dism++") 2 | 3 | ## 關於 Dism++ —— **我們是一線戰友!** 4 | 5 | Dism++ 可以說是一個 Dism 的 GUI 版,但是並不依賴 Dism,直接基於更底層的 CBS (Component Based Servicing Reference)。 6 | 7 | 8 | ### Dism++ 的特點 9 | * Dism++ 無需任何 Dism 組件,即可相容高低版本所有系統!而微軟 Dism 則需要 3 個版本。 10 | * Dism++ 是 Dism 的交集,提供完全的圖形化操作,幾乎支援 Dism 的所有功能以及大量 Dism 原本所不支援的功能。管理更新、驅動、功能、Appx、選用功能、服務、Compact/WIMboot、系統修復等……放馬過來吧。 11 | * Dism++ 提供了完整的 WIM 支援(包括 ESD 擷取、ESD 轉 ISO、釋放分段 ESD 以及直接 ISO 支援),`值得一提的是,ESD 轉 ISO,Dism++ 可以直接在記憶體中解密無需修改硬碟資料。這極大的滿足了強迫症患者。` 12 | * Dism++ 提供了開放的清理以及最佳化功能,使用者可以自訂 Dism++ 規則,來打造專屬系統工具。 13 | 14 | [ [BUG 反映](https://github.com/Chuyu-Team/Dism-Multi-language/issues) ] 15 | [ [QQ 群 200783396](http://shang.qq.com/wpa/qunwpa?idkey=07a04c095aee1e31f54b82ba98499a5b49aa10185f975946243ba68e0134a34e) ] 16 | 17 | ### 贊助 Dism++ 18 | 贊助的費將用於支付伺服器費用,如果大家夠豪氣可能還能支付房租。為了從可持續角度考慮,建議大家每年小額贊助一次,每次大約 20 RMB 即可。 19 | 20 | `貼心提醒:贊助並不是等於付費支援,此軟體為個人愛好業餘維護。BUG 反映以及改進意見並不能保證 100% 及時回應並處理。因此請勿僅僅為了後期服務支援而贊助 Dism++。` 21 | 22 | ![donate](../images/donate.png) 23 | 24 | ## Dism++ 執行要求 25 | 26 | 最低執行平台:NT 6.0 以上、512 MB 記憶體 27 | 28 | 建議執行平台:NT 6.1 以上、64 位元作業系統、8G 實體記憶體 +8GB 虛擬記憶體以上 29 | 30 | >* 執行平台僅限 x86、amd64 以及 arm64 處理器,IA64 以及 ARM 架構僅支援離線模式 31 | * 在沒有 WOW64 支援的環境中(比如純 64 PE),將導致 Dism++ 無法離線處理 32 位元系統。 32 | * 如果執行平台為 Windows Vista 或者 Windows 2008 時某些功能將無法使用,比如 CompactOS、WIMBoot。 33 | 34 | ## Dism++ 檔案清單 35 | 36 | 以下清單展示了所有 Dism++ 相關檔案,你可以根據需要刪除你所不需要的內容。懶人請無視以下內容。 37 | 38 | | 檔案名稱 | 功能說明 39 | | -------- | ------- 40 | |Dism++x64.exe|x64 系統的 UI,在 64 位元系統中,啟動此程式呈現 UI。 僅 x64 系統需要,可以考慮刪除此檔案。 41 | |Dism++x86.exe|x86 系統的 UI,如果你在 x64 系統中啟動此程式,則自動轉向到 Dism++x64.exe。 僅 x86 系統需要,可以考慮刪除此檔案。 42 | |Dism++arm64.exe|arm64 位元系統的 UI,在 arm64 位元系統中,啟動此程式呈現 UI。 僅 arm64 系統需要,可以考慮刪除此檔案。 43 | |Config\amd64\bcdboot.exe|提供啟動(Boot)修復功能,原版系統自帶此檔案,刪除沒有影響。原版系統使用者以及 32 位元系統使用者可以刪除此檔案。 44 | |Config\x86\bcdboot.exe|提供啟動(Boot)修復功能,原版系統自帶此檔案,刪除沒有影響。原版系統使用者以及 64 位元系統使用者可以刪除此檔案。 45 | |Config\amd64\CBSHost.dll|Dism++API 支援模組,刪除後 x64 系統將無法使用 Dism++。僅 x64 系統需要,可以考慮刪除此檔案。 46 | |Config\x86\CBSHost.dll|Dism++API 支援模組,刪除後 x86 系統將無法使用 Dism++,64 位元系統無法離線處理 x86 以及 arm64 系統。不需要離線處理 32 位元系統的 x64 以及 arm64 使用者可以考慮刪除。 47 | |Config\arm64\CBSHost.dll|Dism++API 支援模組,刪除後 arm64 位元系統將無法使用Dism++。 僅 arm64 系統需要,使用者可以考慮刪除此檔案。 48 | |Config\amd64\NCleaner.dll|64 位元 NCleaner 清理引擎,缺少此檔案後某些進階清理功能將無法使用,僅 x64 系統需要,可以考慮刪除此檔案。 49 | |Config\x86\NCleaner.dll|32 位元 NCleaner 清理引擎,缺少此檔案後某些進階清理功能將無法使用,僅 x86 系統需要,可以考慮刪除此檔案。 50 | |Config\arm64\NCleaner.dll|arm64 NCleaner 清理引擎,缺少此檔案後某些進階清理功能將無法使用,僅 arm64 系統需要,使用者可以考慮刪除此檔案。 51 | |Config\amd64\wimgapi.dll|WIM 檔案操作支援模組,Win10 使用者、32 位元使用者或者不需要任何 WIM 相關功能的使用者,那麼可以考慮刪除。 52 | |Config\x86\wimgapi.dll|WIM 檔案操作支援模組,Win10 使用者、64 位元使用者或者不需要任何 WIM 相關功能的使用者,那麼可以考慮刪除。 53 | |Config\amd64\wofadk.sys
Config\x86\wofadk.sys|提供 Compact 功能相關支援,不需要離線處理的 Win10 使用者可以考慮刪除此檔案。強烈建議不要刪除這些檔案。 54 | |Config\Plugins|Dism++ 外掛支援,不需要外掛的使用者可以刪除此檔案。 55 | |Config\Languages|Dism++ 的語言檔案,以繁體中文為例,只保留 zh-Hant.zip 即可。 56 | |Config\Data.zip|此檔案存放了清理規則,ESD 解密 KEY 等。此檔案不允許刪除。 57 | |Config\UpdateInfo.zip
Config\UpdateInfoBeta.zip|Dism++ 更新元資料,用於判斷是否存在新版本,以及防止使用者新版本降級為舊版本。建議保留,刪除後將重新下載。 58 | |Config\default.ui.zip|此檔案存放了 Dism++ 的 UI。此檔案不允許刪除。 59 | |Config\wsusscn2.cab|Windows Update 資料庫檔案,用於掃描更新。可以考慮刪除。 60 | |Config\include\Dism++.h|僅測試版存在此檔案,C Script 腳本支援標頭檔,缺少此檔案後 C Script 腳本將無法使用。 61 | |Config\amd64\CScript.dll|僅測試版存在此檔案,64 位元 C Script 腳本解析引擎,缺少此檔案後 C Script 腳本將無法使用,32 位元使用者可以考慮刪除此檔案。 62 | |Config\x86\CScript.dll|僅測試版存在此檔案,32 位元 C Script 腳本解析引擎,缺少此檔案後 C Script 腳本將無法使用,64 位元使用者可以考慮刪除此檔案。 63 | --------------------------------------------------------------------------------