Lumia一键刷稳定版 Win10 arm 及其报错处理

前言

之前我发了一篇Lumia1520 刷Win10 arm双系统的文章,不过后来发现那个方法对小白来说太不友好,且系统也不稳定,所以我找到了更好的方法

刷机

我们可以利用刷机迷进行刷机,支持一键刷机操作和WP系统的还原备份更新以及WP应用安装等,甚至还有Root以及注册表编辑等功能。

至于教程,官网已经说的很清楚了(官方有文章和视频教程),而且各种Lumia机型都有,还提供了固件和其它文件的下载。

有兴趣的可以直接去官网看,不需要我再写教程了。

注意问题

  • 一定要先看教程,尤其是解锁那段,不当操作会导致解锁不完全
  • 如果再部署win10 arm的时候出现path路径报错,你需要手动给EFIESP分区一个盘符再进行部署(不知道什么是EFIESP的去看我上一篇文章)
  • 如果你的PC装了杀毒软件,在过程中会拦截(毕竟安装系统会修改相关的dll文件),你需要允许程序全部运行

一个思路

我突然想到Win10 arm是无法运行仅支持X86框架的软件的,如果你想玩游戏可以用Steam串流玩,这样你就可以向别人吹:我能在手机上玩3A大作,你能吗?(滑稽)

Lumia1520手机刷Windows10 arm双系统

注意问题

  • 升级到Windows Mobile 10的需重新刷回8.1,否则解锁会失败
  • 部分手机刷机win10arm后出现屏幕卡死现象,目前除了换屏或重新焊接暂无其他解决方案,请谨慎刷机(当然如果遇到这种问题你也可以刷回原来的系统,还原你的手机)
  • 本教程为双系统安装方式

准备

硬件

  • 联网的 WIndows PC一台(PC系统最好是Win10其余系统没试过;硬盘要够用,因为接下来下载的软件比较大)
  • NOKIA Lumia 1520 (最好先充电)
  • Micro USB 数据线

软件

首先软件我已经为大家准备好了,直接下载即可,不需要再折腾去收集了

https://pan.baidu.com/s/169ufHYn_zn-G0dr1GeopCw

提取码:8848

列表如下

  • 固件RM1085_1078.0053.10586.13169.15217.034DAF_retail_prod_signed.ffu (在ffu固件压缩包内,解压即可得到)
  • 固件 RM940_02540.00019.14484.37028_RETAIL_prod_signed_200_01ACB8_ATT-US.ffu(在ffu固件压缩包内,解压即可得到)
  • PartitionGuru_Pro (硬盘工具)
  • WPInternals (解锁以及恢复工具)
  • MPRG8974_fh.ede (可以直接在网盘中下载也可以从Lumia救砖合集包中找到)
  • L1520_15035_Denim_zh_CN_V2.1_AoW_TEST (Win10 arm系统及其引导部署工具)

操作

刷回Windows Mobile8.1

说明:如果你的 NOKIA Lumia1520系统升到了Windows Mobile 10 那么你需要退回8.1,否则接下来的UEFI解锁将会失败;如果你的手机系统未升级,则可以忽略本步骤

  • 解压WPInternals(以下简称WPI)的压缩包并打开WPInternals.exe

    WPI WPI

  • 插上数据线并连接手机

  • 在WPI中点击左侧Flash

    Flash

  • 右侧找到Flash original FFU一栏

  • 看到FFU点击标有下划线的Select the FFU-file to flash to the phone…

    Flash

  • 选择你下载好的RM940_02540.00019.14484.37028_RETAIL_prod_signed_200_01ACB8_ATT-US.ffu固件 (不知道在哪里的回到文章上方去看)

  • 点击Flash FFU image按钮

    Flash

  • 读完进度条手机进入系统就算成功了

刷Win10 Arm

UEFI解锁

  • WPI左侧栏中点击Unlock bootloader

  • 如果你的手机没有进入Flash-Mode的话会提示,点击OK按钮

    Unlock

  • 手机显示如下图所示的符号即为进入Flash-Mode

    Unlock

  • SecureBoot Unlock V2一栏中按照下图配置(即你之前下好的固件,分别为RM940.ffu / MPRG8974.ede / RM1085.ffu ,目录根据自己储存位置找)

    Unlock

  • 点击Unlock按钮,读条进入大容量模式

  • 出现下图且PC检测到一个名为MainOS的磁盘即为成功 (如果读条卡死或没检测到新磁盘的话,尝试用PartitionGuru_Pro分配一个新盘符)

    Unlock

储存分配

  • 打开PartitionGuru.exe

  • 找到手机硬盘的Data分区

    Disk

  • 右键,点击 调整分区大小

    Disk

  • 分区前部的空间 改为12GB,并且选为创建新分区

    Disk

  • 点击开始按钮,等待读条完毕PC能检测到新的分区即为成功(我这里新分区的盘符为K,接下来都以此为例,你的盘符可能跟我不一样需要记住你本地的盘符

系统部署

  • 你需要解压 L1520_15035_Denim_zh_CN_V2.1_AoW_TEST.7z 压缩包

    SystemInstall

  • 得到如下文件

    SystemInstall

  • 打开WOA32安装脚本.bat

  • 按照其要求(不要输入:)输入你的盘符(就是我们之前创建的那个,我的是k)

    SystemInstall

  • 输入1,并且等待15~20分钟,读条完毕后按任意键返回菜单

    SystemInstall

引导搭建

  • 右键 此电脑,选择 管理 -> 磁盘管理,找到手机对应的磁盘(看大小约在14GB左右或看盘符找即可)

    Disk

  • 选择第一个分区,右键–>更改驱动器号和路径,然后按照下图所示创立一个新的文件夹,其名称为DPP (注意:名称不能错,否则无法启动)

    Disk

    Disk

  • 对EFIESP分区重复上述操作,但是新的文件夹命名为EFIESP

  • 回到WOA中输入2,安装引导

    SystemInstall

  • 提示成功后拔下数据线

进入系统

  • 手机开机进入引导
  • 通过音量下键,选择Windows 10的那项(第四个)
  • 按下相机键确认,等待启动就可以进入Windows10 arm系统了

其他

参考文章

小天才XTC Z1S开启ADB

起因

最近入手了Apple Watch,但因系统闭源和国区App Store第三方应用实在是少,所以就开始折腾起安卓表来了。正好家里有块给小孩子用的小天才手表,所以就想到了通过ADB调试安装一些这块表原本没有的功能 (因为穷没钱买其他安卓表)

设备参数

型号: 小天才XTC Z1S

手表版本: 2.4.5

安卓版本: 4.4.4

开启ADB

  • 首先在该版本下,在设置中连续点击10次“安卓版本”是不会出现开发者模式的,我们要开启ADB只能另寻途径
  • 小天才官方预留了ADB打开的选项,我们只需来到拨号界面,输入*#0769651#* 即进入配置界面
  • 然后将“打开ADB”勾选上即可

SayHello

冒个泡证明我还活着(滑稽)

转眼间,我的高三生活已经过去了一两个月了,这段时间一直很忙,所以没写博客。

所以,这篇文章就是用来水的,以表示我还活着(滑稽)

C++ 限定符Const和指针

指向常量的指针

指向常量的指针不能用于其所指对象的值。若想存放常量对象的地址,只能使用指向常量的指针。

1
2
3
4
const int a =  3;	//a是个常量,其值不能改变
int *b = &a; //错误:b是个普通指针
const int *c = &a; //正确
*c = 8; //错误:c不能给a赋值

允许一个指向常量的指针指向一个非常量,但不能通过该指针修改这个非常量的值(但该非常量可以通过其他途径修改)。

1
2
int d = 0;	//一个整型变量
c = &d; //正确,但不能通过指针c修改d的值

const指针

常量指针必须初始化,而且一旦初始化完成其值(也就是放在指针的那个地址)就不能改变了。把*放在const前说明不变的是指针的值而不是所指的那个值。

1
2
3
4
5
6
7
8
9
int a = 0;
int b = 1;
const int *c = &a;
int *const d = &a;


c = &b; //正确:但不能通过c改变b的值
*d = 5; //正确:可以通过d改变a的值
d = &b; //错误:d是一个常量指针,其本身的值不能改变

顶层const与底层const

基本概念

指针本身是不是常量指针所指对象是不是常量是两个相互独立的问题。
用名词 顶层 const 表示本身是个常量。
用名词 底层 const 表示所指对象是个常量。

  • 一般的,顶层const可以表示任意的对象。底层cosnt则与指针和引用等复合类型的基本类型有关。
  • 特殊的,指针可以同时是顶层const底层const;声明引用的const都是底层cosnt
1
2
3
4
int a = 0;
int *const p1 = &i; //顶层const
const int b = 42; //顶层const
const int *p2 = &b; //底层const

拷贝操作

  • 顶层const在进行拷贝操作时不受什么影响

    1
    2
    const int a = 0;
    int b = a; //正确:二者类型相同且顶层const不受影响
  • 底层const的限制不能忽视!拷入和烤出的对象必须具有相同的底层const资格,或者两个对象的数据类型必须能够转换。一般来说非常量能转换成常量,反之则不行。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const int a = 0;
    const int *const p = &a; //具有顶层和底层const的指针p,靠右边的是顶层,靠左边的是底层
    const int &b = a; //声明引用的const都是底层const
    int b = a; //正确:a包含顶层const,无影响


    int *p1 = p; //错误:p包含底层const,p1没有
    const int *p2 = p; //正确:二者都包含底层const,p的顶层const无影响

    int i = 1;
    p2 = &i; //正确:int*能转换成const int*

基于JS实现回到页面顶部的五种写法(从实现到增强)【转】

写法

【1】 描点

使用锚点链接是一种简单的返回顶部的功能实现。该实现主要在页面顶部放置一个指定名称的锚点链接,然后在页面下方放置一个返回到该锚点的链接,用户点击该链接即可返回到该锚点所在的顶部位置

1
2
3
4
<body style="height:2000px;">
<div id="topAnchor"></div>
<a href="#topAnchor" style="position:fixed;right:0;bottom:0">回到顶部</a>
</body>

【2】 scrollTop
crollTop属性表示被隐藏在内容区域上方的像素数。元素未滚动时,scrollTop的值为0,如果元素被垂直滚动了,scrollTop的值大于0,且表示元素上方不可见内容的像素宽度
由于scrollTop是可写的,可以利用scrollTop来实现回到顶部的功能

1
2
3
4
5
6
7
8
<body style="height:2000px;">
<button id="test" style="position:fixed;right:0;bottom:0">回到顶部</button>
<script>
test.onclick = function(){
document.body.scrollTop = document.documentElement.scrollTop = 0;
}
</script>
</body>

【3】scrollTo()

scrollTo(x,y)方法滚动当前window中显示的文档,让文档中由坐标x和y指定的点位于显示区域的左上角
设置scrollTo(0,0)可以实现回到顶部的效果

1
2
3
4
5
6
7
8
<body style="height:2000px;">
<button id="test" style="position:fixed;right:0;bottom:0">回到顶部</button>
<script>
test.onclick = function(){
scrollTo(0,0);
}
</script>
</body>

【4】scrollBy()

scrollBy(x,y)方法滚动当前window中显示的文档,x和y指定滚动的相对量
只要把当前页面的滚动长度作为参数,逆向滚动,则可以实现回到顶部的效果

1
2
3
4
5
6
7
8
9
<body style="height:2000px;">
<button id="test" style="position:fixed;right:0;bottom:0">回到顶部</button>
<script>
test.onclick = function(){
var top = document.body.scrollTop || document.documentElement.scrollTop
scrollBy(0,-top);
}
</script>
</body>

【5】scrollIntoView()
Element.scrollIntoView方法滚动当前元素,进入浏览器的可见区域 

  该方法可以接受一个布尔值作为参数。如果为true,表示元素的顶部与当前区域的可见部分的顶部对齐(前提是当前区域可滚动);如果为false,表示元素的底部与当前区域的可见部分的尾部对齐(前提是当前区域可滚动)。如果没有提供该参数,默认为true

  使用该方法的原理与使用锚点的原理类似,在页面最上方设置目标元素,当页面滚动时,目标元素被滚动到页面区域以外,点击回到顶部按钮,使目标元素重新回到原来位置,则达到预期效果

1
2
3
4
5
6
7
8
9
<body style="height:2000px;">
<div id="target"></div>
<button id="test" style="position:fixed;right:0;bottom:0">回到顶部</button>
<script>
test.onclick = function(){
target.scrollIntoView();
}
</script>
</body>

##增强##

  下面对回到顶部的功能进行增强

【1】显示增强

  使用CSS画图,将“回到顶部”变成可视化的图形(如果兼容IE8-浏览器,则用图片代替)

  使用CSS伪元素及伪类hover效果,当鼠标移动到该元素上时,显示回到顶部的文字,移出时不显示

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
<style>
.box{
position:fixed;
right:10px;
bottom: 10px;
height:30px;
width: 50px;
text-align:center;
padding-top:20px;
background-color: lightblue;
border-radius: 20%;
overflow: hidden;
}
.box:hover:before{
top:50%
}
.box:hover .box-in{
visibility: hidden;
}
.box:before{
position: absolute;
top: -50%;
left: 50%;
transform: translate(-50%,-50%);
content:'回到顶部';
width: 40px;
color:peru;
font-weight:bold;
}
.box-in{
visibility: visible;
display:inline-block;
height:20px;
width: 20px;
border: 3px solid black;
border-color: white transparent transparent white;
transform:rotate(45deg);
}
</style>
<body style="height:2000px;">
<div id="box" class="box">
<div class="box-in"></div>
</div>
</body>

【2】动画增强

  为回到顶部增加动画效果,滚动条以一定的速度回滚到顶部

  动画有两种:一种是CSS动画,需要有样式变化配合transition;一种是javascript动画,使用定时器来实现  

  在上面的5种实现中,scrollTop、scrollTo()和scrollBy()方法可以增加动画,且由于无样式变化,只能增加javascript动画

  定时器又有setInterval、setTimeout和requestAnimationFrame这三种可以使用,下面使用性能最好的定时器requestAnimationFrame来实现

[scode type=”yeallow[scode type=”red”]

[注意]IE9-浏览器不支持该方法,可以使用setTimeout来兼容

[/scode]

  • 增加scrollTop的动画效果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script>
var timer = null;
box.onclick = function(){
cancelAnimationFrame(timer);
timer = requestAnimationFrame(function fn(){
var oTop = document.body.scrollTop || document.documentElement.scrollTop;
if(oTop > 0){
document.body.scrollTop = document.documentElement.scrollTop = oTop - 50;
timer = requestAnimationFrame(fn);
}else{
cancelAnimationFrame(timer);
}
});
}
</script>
  • 增加scrollTo()动画效果
    将scrollTo(x,y)中的y参数通过scrollTop值获取,每次减少50,直到减少到0,则动画完毕
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script>
var timer = null;
box.onclick = function(){
cancelAnimationFrame(timer);
timer = requestAnimationFrame(function fn(){
var oTop = document.body.scrollTop || document.documentElement.scrollTop;
if(oTop > 0){
scrollTo(0,oTop-50);
timer = requestAnimationFrame(fn);
}else{
cancelAnimationFrame(timer);
}
});
}
</script>
  • 增加scrollBy()动画效果
    将scrollBy(x,y)中的y参数设置为-50,直到scrollTop为0,则回滚停止
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script>
var timer = null;
box.onclick = function(){
cancelAnimationFrame(timer);
timer = requestAnimationFrame(function fn(){
var oTop = document.body.scrollTop || document.documentElement.scrollTop;
if(oTop > 0){
scrollBy(0,-50);
timer = requestAnimationFrame(fn);
}else{
cancelAnimationFrame(timer);
}
});
}
</script>

##实现##
由于scrollTop、scrollBy()和scrollTo()方法,都以scrollTop值是否减少为0作为动画停止的参照,且三个动画的原理和实现都基本相似,性能也相似。最终,以最常用的scrollTop属性实现动画增强效果

  当然,如果觉得50的速度不合适,可以根据实际情况进行调整

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<style>
.box{
position:fixed;
right:10px;
bottom: 10px;
height:30px;
width: 50px;
text-align:center;
padding-top:20px;
background-color: lightblue;
border-radius: 20%;
overflow: hidden;
}
.box:hover:before{
top:50%
}
.box:hover .box-in{
visibility: hidden;
}
.box:before{
position: absolute;
top: -50%;
left: 50%;
transform: translate(-50%,-50%);
content:'回到顶部';
width: 40px;
color:peru;
font-weight:bold;
}
.box-in{
visibility: visible;
display:inline-block;
height:20px;
width: 20px;
border: 3px solid black;
border-color: white transparent transparent white;
transform:rotate(45deg);
}
</style>
<body style="height:2000px;">
<div id="box" class="box">
<div class="box-in"></div>
</div>
</body>
<script>
var timer = null;
box.onclick = function(){
cancelAnimationFrame(timer);
timer = requestAnimationFrame(function fn(){
var oTop = document.body.scrollTop || document.documentElement.scrollTop;
if(oTop > 0){
document.body.scrollTop = document.documentElement.scrollTop = oTop - 50;
timer = requestAnimationFrame(fn);
}else{
cancelAnimationFrame(timer);
}
});
}
</script>

原文地址

原文地址:https://www.jb51.net/article/91824.htm

C/C++在Win32控制台播放Bad Apple

前言

效果展示

BadApple-Win32

###提示###
这里首先你需要准备一些文件,将一个Bad Apple的视频分别转换成txtmp3格式(mp3用来作为背景音乐)
我将txt文件放到exe文件目录下的子目录files里了
转换方法可以用Adobe,这里不做详细介绍,你可以下载我已经准备好的文件,在文章末尾会给出连接

代码

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <stdio.h>
#include <iostream>
#include <Windows.h>
#include <mmsystem.h>

#pragma comment (lib,"Winmm.lib") //加载windows播放音乐的库

#define MAX_ROW 66
#define MAX_COL 150
#define MAX_FRAME 13148

char map[MAX_FRAME][MAX_ROW][MAX_COL+1];

void init(){
SetConsoleTitle("BadApple"); //控制台标题

system("mode con cols=151 lines=68");

HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO info = { 1,0 };
SetConsoleCursorInfo(hout, &info);

}

//读取文件
void readData() {
FILE* fp; //文件指针
char fileName[128]; //文件名

for (int i = 0; i < MAX_FRAME; i++) {
//每次读取一个文件
int row = 0;
sprintf(fileName, "files/ASCII-badApple60fps%05d.txt", i); //生成一个文件名
fp = fopen(fileName, "r");
if (fp == NULL) {
exit(1);
}

//当文件读完时结束循环
while (!feof(fp)) {
fgets(map[i][row],200,fp);
map[i][row][MAX_COL] = '\0'; //取消每行最后的回车符
row++;
}
fclose(fp);
}
}

//播放动画函数
void play() {

system("cls"); //清屏
for (int i = 0; i < MAX_FRAME; i++) {
for (int j = 0; j < MAX_ROW; j++) {
//如果用printf()的话由于之前我们取消了换行符,所以要在此处加上
puts(map[i][j]); //不断打印到每一行
}
Sleep(2); //休眠2毫秒

//把光标引到最前方
HANDLE houtput = GetStdHandle(STD_OUTPUT_HANDLE); //控制台

COORD loc; //引入结构体,并定义xy初始坐标
loc.X = 0;
loc.Y = 0;
SetConsoleCursorPosition(houtput, loc);
}


}

int main(void) {
init(); //初始化

//将文本文件加载到计算机内存
readData();


//开始播放
while (1) {
//播放背景音乐
mciSendString("play bg.mp3", 0, 0, 0);
play();
}

return 0;
}

文件

百度网盘链接:https://pan.baidu.com/s/1i8UEQsw5UPoLX7S41Xk9Hw
提取码:8848

Linux搭建Java国际版Minecraft服务器

前提

前提你要有一台运行内存不小于2GB的服务器

搭建

安装

安装Java

  • 首先执行下方命令产看是否已安装Java,出现版本号就不用再次安装了

    1
    java -version
  • 以Centos为例安装Java

    1
    sudo yum install java-1.8.0-openjdk

安装Screen

  • 执行下方命令安装Screen (依然以CentOS为例)
    1
    sudo yum install screen

下载

  • 首先你要在本地去官网MCBBS下载服务端(网络原因推荐去MCBBS)mcbbs

配置

  • server.jar文件上传到服务器*(Win下可以用WinSCP等工具上传)*

  • 用工具(Putty等)连接服务器,在服务器该文件的目录下执行以下命令

    1
    sudo java -Xms1024m -Xmx1024m -jar server.jar nogui
  • 然后会产生许多文件,其中有一个叫eula.txt

  • 用nano编辑它(报错的话就用命令安装sudo yum install nano)

    1
    sudo nano eula.txt
  • 将其中的 eula = false 更改为 eula = trueCtrl+O然后回车保存

非正版注意

若您想要非正版用户登录服务器还需要额外步骤

  1. 执行以下命令

    1
    sudo nano server.propertices
  2. 修改 online-mode:trueonline-mode:false

  3. 然后保存

启动

  • 创建一个新窗口给MC,防止关掉命令行时进程终止

    1
    sudo screen -S mcserver
  • 再次执行以下命令

    1
    sudo java -Xms1024m -Xmx1024m -jar server.jar nogui
  • 等到出现”help”就搭建完成了

Windows下Java安装与环境变量配置

前言

本文章以Win10较新版本为例,Win7及其以后的windows版本类似

步骤

下载

  1. 第一步自然是去官网下载Java了
  2. 点击 “免费 Java 下载” 按钮Java官网
  3. 跳转到 “下载适用于 Windows 的 Java”的界面Win-Java
  4. 点击“同意并开始免费下载按钮”,然后就会得到JavaSetup.exe文件

安装

  1. 点击刚才得到的文件
  2. 按照提示安装即可(记住你的安装路径,后面配置要用到

环境变量

什么是环境变量

“环境变量(environment variables)”一般是指在操作系统中用来指定操作系统运行环境的一些参数

配置Java环境变量

  • 安装完成后,右击”此电脑“,点击”属性“,选择”高级系统设置
  • 这里可能会提示“以管理员的身份运行”,我们要选择的“”(没弹窗的话就不用管了)
  • 然后就会弹出“系统属性”窗口
  • 选择“高级”,点击“环境变量系统属性
  • 会弹出“环境变量”窗口;找到“系统变量”一栏环境变量
  • 点击“新建”,变量名变量值(你的安装路径)如下所示填写,然后点击“确定
1
2
3
4
5
//变量名
Java_Home

//变量值, 此处只是举例,实际路径为你之前安装的路径
C:\Program Files\Java\jdk1.8.0_91
  • 再点击“新建”,变量名变量值如下所示填写,然后点击“确定”(如果有CLASSPATH就“编辑”
1
2
3
4
5
//变量名
CLASSPATH

//变量值
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
  • 在“系统变量”(不是用户变量!!)中找到“Path”点击”编辑Path

此处往下步骤新版本win10与旧版本windows(旧win10,win7/8/8.1)略有不同,以新版win10为例,旧版本可参考菜鸟教程


  • 在”编辑环境变量“窗口下,点击“新建”,填写内容如下,然后点击“确定

Path

1
2
3
//新建两行分别填写
%Java_Home%\bin
%Java_Home%\jre\bin
  • 依次保存并返回即可

检验

  1. 按下 ”Win + R“键,输入”cmd
  2. 在cmd中,输入”java -version”
  3. 有版本号输出即为成功

如何更新Typecho

前言

更新了handsome主题后也打算把Typecho更新下,现在Typecho版本已经到了1.1正式版本了。

方法

Typecho更新不需要将文件全部删除(不需要!不需要!不需要! 看清楚)

  1. 官网下载Typecho1.1正式版
  2. 在你的主机或服务器上找到旧版本Typecho目录
  3. 删除其中的admin文件夹、var文件夹、index.php
  4. 上传新的admin文件夹、var文件夹、index.php
  5. 然后回到typecho后台就会发现版本已经更新了