Skip to content

Commit 44fd041

Browse files
重写配置恢复工具
1 parent 748b6d7 commit 44fd041

File tree

3 files changed

+96
-8
lines changed

3 files changed

+96
-8
lines changed

ReadMe.md

+20-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@
6969

7070
1. 运行本程序时,根据您的 NVDA 配置文件夹中是否存在 NVDA.ini 文件,会弹出不同的欢迎引导对话框,请根据提示选择所需的安装模式亦或者是否清空及是否备份您的现有配置,如选择备份您现有的 NVDA 配置,则备份的文件位于 `"%UserProfile%\Documents\NVDABackup"` 文件夹下;
7171
2. 在本程序的“选择附加任务”页面,还提供了“在欢迎界面启用 NVDA”、“语音合成器设置”、“导入 VVTTS 语音字典(仅用于 SAPI4)”、“修改 DragAndDrop 插件的台式机快捷键与笔记本键盘方案相同”、“清空用户配置文件夹”等附加选项,可按需选择使用。其中:“语音合成器设置”选项可设置 NVDA 首次运行时的默认语音引擎;“导入 VVTTS 语音字典(仅用于 SAPI4)”选项用以解决部分字符在SAPI4 接口的 VVTTS 发音错误或读乱码的问题;“修改 DragAndDrop 插件的台式机快捷键与笔记本键盘方案相同”选项仅对简体中文语言生效,用以解决台式机键盘方案下的部分热键冲突。
72-
3. 本程序的压缩包中附带有“恢复备份的 NVDA 配置.exe”文件,如运行本程序时,您的 NVDA 配置文件夹中存在 NVDA.ini 文件,并且您选择了清空及备份您的现有配置文件,则可通过此程序将其恢复到您的 NVDA 配置文件夹,恢复后的效果与未使用本程序进行安装基本相同,恢复后备份的配置文件即会被删除;
72+
3. 本程序的压缩包中附带有“NVDA 配置恢复工具.exe”文件,如运行本程序时,您的 NVDA 配置文件夹中存在 NVDA.ini 文件,并且您选择了清空及备份您的现有配置文件,则可通过此程序将其恢复到您的 NVDA 配置文件夹,恢复后的效果与未使用本程序进行安装基本相同,恢复后备份的配置文件即会被删除;
7373
4. 通过本程序安装的 IBM ViaVoice TTS Runtime v6.405 语音引擎、Microsoft Visual C++ 2012 Redistributable (x86) 等组件,无法被自动删除,如需删除,请到程序和功能自行卸载;
7474
5. 本程序的界面消息仅支持以简体中文显示,当检测到本程序在其他语言的操作系统上运行时,为了避免其他语言的语音引擎无法识别简体中文,进而导致本程序无法顺利安装,故将会以英语显示一个错误对话框,可根据对话框提示启动原始 NVDA 安装流程,本程序对简体中文用户定制的设置、插件等个性化功能将不会安装。
7575

@@ -243,3 +243,22 @@
243243
- 调整部分语音引擎和插件的默认安装状态;
244244
- 更新插件。
245245

246+
### 2024--
247+
- #### 全局
248+
- 自本版起,本程序的源代码将托管至[GitHub](https://github.com/wmhn1872265132/NVDA_Lazy_Edition)
249+
- 改进:调整 ReadMe 文件,已使其在 GitHub 正确显示;
250+
- 调整:支持的操作系统现为 Windows 8.1及以上;
251+
- #### 安装脚本
252+
- 改进:将程序压缩包的版本部分更改为本程序的生成日期;
253+
- 改进:重写备份配置恢复程序,并支持对“修改 DragAndDrop 插件的台式机快捷键与笔记本键盘方案相同”选项的恢复;
254+
- #### 安装程序
255+
- 更新 NVDA;
256+
- 调整:非简体中文语言的操作系统运行本程序,将以英语显示不受支持的提示;
257+
- 修正:通过本程序更新从插件商店安装的插件后,在插件商店仍然能检测到相同版本插件的问题;
258+
- 完善ReadMe文档;
259+
- 新增插件:;
260+
- 不在集成的插件:;
261+
- 更新插件。
262+
- #### NVDA设置
263+
- 更新了部分 WorldVoice 插件的设置参数;
264+

恢复备份的 NVDA 配置.iss

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
[Setup]
2+
AppName=NVDA 配置恢复工具
3+
AppVersion=1.0
4+
VersionInfoVersion=1.0
5+
AppVerName=NVDA 配置恢复工具
6+
DefaultDirName={userappdata}\NVDA
7+
AllowNoIcons=yes
8+
OutputDir=.
9+
OutputBaseFilename=NVDA 配置恢复工具
10+
Compression=lzma
11+
DisableDirPage=Yes
12+
DisableProgramGroupPage=yes
13+
AppendDefaultDirName=No
14+
DirExistsWarning=No
15+
Uninstallable=No
16+
SetupIconFile=Application\images\nvda.ico
17+
ArchitecturesInstallIn64BitMode=x64 ia64 arm64
18+
AllowCancelDuringInstall=No
19+
AlwaysShowComponentsList=No
20+
ShowComponentSizes=No
21+
ShowTasksTreeLines=Yes
22+
RestartIfNeededByRun=no
23+
ShowLanguageDialog=No
24+
25+
[Languages]
26+
Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"
27+
28+
[code]
29+
procedure RestoreNVDAProfile();
30+
var
31+
ResultCode: Integer;
32+
begin
33+
if MsgBox('本程序将恢复您在 NVDA 懒人版安装程序所备份的配置到 NVDA 配置文件夹,并还原对简体中文按键与手势的自定义设置。' #13#13 '备份的配置文件成功恢复后将会被删除。' #13#13 '恢复过程需重启您的 NVDA,您要现在恢复吗?', mbConfirmation, MB_YESNO)= IDYES then
34+
begin
35+
ShellExec('', ExpandConstant('{commonpf32}\NVDA\nvda.exe'), '-q', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
36+
DelTree(ExpandConstant('{userappdata}\NVDA'), True, True, True);
37+
ExtractTemporaryFile(ExtractFileName(ExpandConstant('{tmp}\7z.dll')));
38+
ExtractTemporaryFile(ExtractFileName(ExpandConstant('{tmp}\7z.exe')));
39+
Exec(ExpandConstant('{tmp}\7z.exe'), 'x "'+ ExpandConstant('{userdocs}\NVDABackup\NVDABackup.zip" -aoa -o"'+ ExpandConstant('{userappdata}\NVDA')+'"', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
40+
DelTree(ExpandConstant('{userdocs}\NVDABackup'), True, True, True);
41+
DeleteIniSection('globalPlugins.DragAndDrop.GlobalPlugin', ExpandConstant('{commonpf32}\NVDA\locale\zh_CN\gestures.ini'));
42+
ShellExec('', ExpandConstant('{commonpf32}\NVDA\nvda.exe'), '', '', SW_SHOW, ewNoWait, ResultCode);
43+
MsgBox('恭喜,操作成功!', mbInformation, MB_OK);
44+
end;
45+
end;
46+
function InitializeSetup: Boolean;
47+
begin
48+
if FileExists(ExpandConstant('{userdocs}\NVDABackup\NVDABackup.zip')) = True then
49+
begin
50+
RestoreNVDAProfile();
51+
end else begin
52+
MsgBox('未检测到配置备份文件,无法恢复!', mbCriticalError, MB_OK)
53+
end;
54+
Result := False;
55+
end;
56+
57+
[Files]
58+
Source: "Others\7z.dll"; DestDir: "{tmp}"; Flags: deleteafterinstall ignoreversion
59+
Source: "Others\7z.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall ignoreversion

执行脚本.bat

+17-7
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,32 @@
11
@echo off
2-
Rem 修改下一行等号后面的值为NVDA源程序文件名的版本号部分即可成功生成,生成的文件位于 Output 文件夹中。
3-
set nvda=2023.3
2+
Rem 修改下一行等号后面的值为NVDA源程序文件名即可成功生成,生成的文件位于 Output 文件夹中。
3+
set nvda=nvda_2024.1rc1
4+
5+
Rem 删除已经存在的懒人版相关文件
46
IF EXIST "%~dp0Application" (rd /s /q "%~dp0Application")
57
IF EXIST "%~dp0Output" (rd /s /q "%~dp0Output")
68
IF EXIST "%~dp0Application.exe" (del /f /q "%~dp0Application.exe")
79
IF EXIST "%~dp0NVDA 懒人版.exe" (del /f /q "%~dp0NVDA 懒人版.exe")
10+
IF EXIST "%~dp0NVDA 配置恢复工具.exe" (del /f /q "%~dp0NVDA 配置恢复工具.exe")
811
IF EXIST "%~dp0ReadMe.txt" (del /f /q "%~dp0ReadMe.txt")
9-
"%~dp0nvda_%nvda%.exe" --create-portable-silent --portable-path="%~dp0Application"
12+
13+
Rem 创建便携版 NVDA
14+
"%~dp0%nvda%.exe" --create-portable-silent --portable-path="%~dp0Application"
1015
if /i %PROCESSOR_IDENTIFIER:~0,3%==x86 (
1116
Start /D "%ProgramFiles%\NVDA" NVDA
1217
) else (
1318
Start /D "%ProgramFiles(x86)%\NVDA" NVDA
1419
)
20+
21+
Rem 开始生成
1522
COPY /B /V /Y "%~dp0ReadMe.md" "%~dp0ReadMe.txt"
16-
"%~dp0InnoSetup\Compil32" /cc "%~dp0便携版NVDA.iss"
17-
"%~dp0InnoSetup\Compil32" /cc "%~dp0NVDA 懒人版.iss"
18-
"%~dp0Others\7z.exe" a -y -tzip "%~dp0Output\NVDA_Lazy_Edition_%nvda%.zip" "%~dp0NVDA 懒人版.exe" "%~dp0ReadMe.txt" "%~dp0恢复备份的 NVDA 配置.exe"
19-
"%~dp0Others\7z.exe" a -y -tzip "%~dp0Output\NVDA懒人版源代码.zip" "%~dp0Addons" "%~dp0InnoSetup" "%~dp0Others" "%~dp0userConfig" "%~dp0NVDA 懒人版.iss" "%~dp0%nvda%.exe" "%~dp0ReadMe.txt" "%~dp0便携版NVDA.iss" "%~dp0恢复备份的 NVDA 配置.exe" "%~dp0执行脚本.bat"
23+
"%~dp0InnoSetup\Compil32" /cc "%~dp0便携版安装脚本.iss"
24+
"%~dp0InnoSetup\Compil32" /cc "%~dp0懒人版安装脚本.iss"
25+
"%~dp0InnoSetup\Compil32" /cc "%~dp0恢复备份的 NVDA 配置.iss"
26+
"%~dp0Others\7z.exe" a -y -tzip "%~dp0Output\NVDA_Lazy_Edition_%date:~0,4%.%date:~5,2%.%date:~8,2%.zip" "%~dp0NVDA 懒人版.exe" "%~dp0ReadMe.txt" "%~dp0NVDA 配置恢复工具.exe"
27+
"%~dp0Others\7z.exe" a -y -tzip "%~dp0Output\Source_Code_And_Dependency_Files_%date:~0,4%.%date:~5,2%.%date:~8,2%.zip" "%~dp0Addons" "%~dp0InnoSetup" "%~dp0Others" "%~dp0userConfig" "%~dp0NVDA 懒人版.iss" "%~dp0%nvda%.exe" "%~dp0ReadMe.md" "%~dp0NVDA 便携版.iss" "%~dp0恢复备份的 NVDA 配置.iss" "%~dp0执行脚本.bat"
28+
29+
Rem 清理临时文件
2030
IF EXIST "%~dp0Application" (rd /s /q "%~dp0Application")
2131
IF EXIST "%~dp0Application.exe" (del /f /q "%~dp0Application.exe")
2232
IF EXIST "%~dp0ReadMe.txt" (del /f /q "%~dp0ReadMe.txt")

0 commit comments

Comments
 (0)