mirror of
https://github.com/modernw/App-Installer-For-Windows-8.x-Reset.git
synced 2026-04-11 17:57:19 +10:00
Update
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -1223,7 +1223,7 @@ public ref class MainHtmlWnd: public System::Windows::Forms::Form, public IScrip
|
||||
{
|
||||
try
|
||||
{
|
||||
const auto &pi = *g_pkginfo.begin ();
|
||||
const auto &pi = g_pkginfo.at (0);
|
||||
const std::wstring
|
||||
&name = pi.identity.name,
|
||||
&publisher = pi.identity.publisher,
|
||||
@@ -1231,7 +1231,9 @@ public ref class MainHtmlWnd: public System::Windows::Forms::Form, public IScrip
|
||||
&fullname = pi.identity.package_full_name;
|
||||
std::vector <find_pkginfo> fpkgs;
|
||||
std::wstring err, msg;
|
||||
HRESULT hr = GetAppxPackages (family, fpkgs, err, msg);
|
||||
HRESULT hr = S_OK;
|
||||
if (g_initfile [L"Settings"] [L"AppInstaller:CheckPackageIsIntalled"].read_bool ())
|
||||
hr = GetAppxPackages (family, fpkgs, err, msg);
|
||||
bool isfind = false;
|
||||
find_pkginfo findpkg;
|
||||
if (fpkgs.size () > 0)
|
||||
|
||||
Binary file not shown.
BIN
notice/notice.rc
BIN
notice/notice.rc
Binary file not shown.
@@ -687,7 +687,7 @@
|
||||
<CustSCPath>%StartProgramsFolderCommon%\\%AppShortcutFolderName%</CustSCPath>
|
||||
<SCDesc>Update</SCDesc>
|
||||
<SCComment/>
|
||||
<SCArgs>appinstaller update /autoupdate</SCArgs>
|
||||
<SCArgs>appinstaller update /checkupdate</SCArgs>
|
||||
<SCWork/>
|
||||
<UseExtIco>0</UseExtIco>
|
||||
<IcoFN/>
|
||||
@@ -953,6 +953,152 @@
|
||||
<CRC>0</CRC>
|
||||
<StoreOnly>0</StoreOnly>
|
||||
</FileData>
|
||||
<FileData>
|
||||
<FldRef>0</FldRef>
|
||||
<FullName>E:\Profiles\Bruce\Documents\Visual Studio 2015\Projects\AppInstallerReset\Release\PriFileFormat.dll.config</FullName>
|
||||
<FileName>PriFileFormat.dll.config</FileName>
|
||||
<Source>E:\Profiles\Bruce\Documents\Visual Studio 2015\Projects\AppInstallerReset\Release</Source>
|
||||
<Ext>config</Ext>
|
||||
<RTSource>档案</RTSource>
|
||||
<Desc/>
|
||||
<Recurse>1</Recurse>
|
||||
<MatchMode>0</MatchMode>
|
||||
<Dest>%AppFolder%</Dest>
|
||||
<Overwrite>1</Overwrite>
|
||||
<Backup>0</Backup>
|
||||
<Protect>0</Protect>
|
||||
<InstallOrder>1000</InstallOrder>
|
||||
<SCStartRoot>0</SCStartRoot>
|
||||
<SCStartProgs>0</SCStartProgs>
|
||||
<SCAppFld>0</SCAppFld>
|
||||
<SCStartup>0</SCStartup>
|
||||
<SCDesk>0</SCDesk>
|
||||
<SCQLaunch>0</SCQLaunch>
|
||||
<SCStartPinOption>0</SCStartPinOption>
|
||||
<SCCust>0</SCCust>
|
||||
<CustSCPath/>
|
||||
<SCDesc/>
|
||||
<SCComment/>
|
||||
<SCArgs/>
|
||||
<SCWork/>
|
||||
<UseExtIco>0</UseExtIco>
|
||||
<IcoFN/>
|
||||
<IcoIdx>0</IcoIdx>
|
||||
<IcoShowMd>0</IcoShowMd>
|
||||
<IcoHK>0</IcoHK>
|
||||
<RegTTF>0</RegTTF>
|
||||
<TTFName/>
|
||||
<RegOCX>0</RegOCX>
|
||||
<RegTLB>0</RegTLB>
|
||||
<SupInUse>0</SupInUse>
|
||||
<Compress>1</Compress>
|
||||
<UseOrigAttr>1</UseOrigAttr>
|
||||
<Attr>0</Attr>
|
||||
<NoCRC>0</NoCRC>
|
||||
<NoRemove>0</NoRemove>
|
||||
<Shared>0</Shared>
|
||||
<OSCond>
|
||||
<OS>32768</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
</OSCond>
|
||||
<RTCond/>
|
||||
<BuildConfigs>
|
||||
<Cfg>All</Cfg>
|
||||
</BuildConfigs>
|
||||
<Package>None</Package>
|
||||
<Packages/>
|
||||
<Notes/>
|
||||
<CompSize>0</CompSize>
|
||||
<CRC>0</CRC>
|
||||
<StoreOnly>0</StoreOnly>
|
||||
</FileData>
|
||||
<FileData>
|
||||
<FldRef>0</FldRef>
|
||||
<FullName>E:\Profiles\Bruce\Documents\Visual Studio 2015\Projects\AppInstallerReset\Release\priformatcli.dll.metagen</FullName>
|
||||
<FileName>priformatcli.dll.metagen</FileName>
|
||||
<Source>E:\Profiles\Bruce\Documents\Visual Studio 2015\Projects\AppInstallerReset\Release</Source>
|
||||
<Ext>metagen</Ext>
|
||||
<RTSource>档案</RTSource>
|
||||
<Desc/>
|
||||
<Recurse>1</Recurse>
|
||||
<MatchMode>0</MatchMode>
|
||||
<Dest>%AppFolder%</Dest>
|
||||
<Overwrite>1</Overwrite>
|
||||
<Backup>0</Backup>
|
||||
<Protect>0</Protect>
|
||||
<InstallOrder>1000</InstallOrder>
|
||||
<SCStartRoot>0</SCStartRoot>
|
||||
<SCStartProgs>0</SCStartProgs>
|
||||
<SCAppFld>0</SCAppFld>
|
||||
<SCStartup>0</SCStartup>
|
||||
<SCDesk>0</SCDesk>
|
||||
<SCQLaunch>0</SCQLaunch>
|
||||
<SCStartPinOption>0</SCStartPinOption>
|
||||
<SCCust>0</SCCust>
|
||||
<CustSCPath/>
|
||||
<SCDesc/>
|
||||
<SCComment/>
|
||||
<SCArgs/>
|
||||
<SCWork/>
|
||||
<UseExtIco>0</UseExtIco>
|
||||
<IcoFN/>
|
||||
<IcoIdx>0</IcoIdx>
|
||||
<IcoShowMd>0</IcoShowMd>
|
||||
<IcoHK>0</IcoHK>
|
||||
<RegTTF>0</RegTTF>
|
||||
<TTFName/>
|
||||
<RegOCX>0</RegOCX>
|
||||
<RegTLB>0</RegTLB>
|
||||
<SupInUse>0</SupInUse>
|
||||
<Compress>1</Compress>
|
||||
<UseOrigAttr>1</UseOrigAttr>
|
||||
<Attr>0</Attr>
|
||||
<NoCRC>0</NoCRC>
|
||||
<NoRemove>0</NoRemove>
|
||||
<Shared>0</Shared>
|
||||
<OSCond>
|
||||
<OS>32768</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
</OSCond>
|
||||
<RTCond/>
|
||||
<BuildConfigs>
|
||||
<Cfg>All</Cfg>
|
||||
</BuildConfigs>
|
||||
<Package>None</Package>
|
||||
<Packages/>
|
||||
<Notes/>
|
||||
<CompSize>0</CompSize>
|
||||
<CRC>0</CRC>
|
||||
<StoreOnly>0</StoreOnly>
|
||||
</FileData>
|
||||
</ArchiveFiles>
|
||||
<ExternalFiles/>
|
||||
<BeforeInstallingScreens>
|
||||
@@ -2119,7 +2265,7 @@ end
|
||||
<Visible>1</Visible>
|
||||
<Enabled>1</Enabled>
|
||||
<TabOrder>0</TabOrder>
|
||||
<IsHTML>0</IsHTML>
|
||||
<IsHTML>1</IsHTML>
|
||||
<TextAlign>0</TextAlign>
|
||||
<VertScroll>1</VertScroll>
|
||||
<HorizScroll>0</HorizScroll>
|
||||
@@ -2180,7 +2326,95 @@ end
|
||||
<IDS_CTRL_BUTTON_BACK>< &Back</IDS_CTRL_BUTTON_BACK>
|
||||
<IDS_CTRL_BUTTON_CANCEL>&Cancel</IDS_CTRL_BUTTON_CANCEL>
|
||||
<IDS_CTRL_BUTTON_HELP>&Help</IDS_CTRL_BUTTON_HELP>
|
||||
<IDS_CTRL_SCROLLTEXT_BODY>Insert your license agreement text here...</IDS_CTRL_SCROLLTEXT_BODY>
|
||||
<IDS_CTRL_SCROLLTEXT_BODY><!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>End User License Agreement (EULA)</title>
|
||||
<style>
|
||||
body {
|
||||
/*font-family: "Segoe UI", "Microsoft YaHei", Arial, sans-serif;*/
|
||||
font-size: 9pt;
|
||||
/*color: #333333;
|
||||
background-color: #ffffff;*/
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 12.5pt;
|
||||
font-weight: bold;
|
||||
margin-bottom: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 10.75pt;
|
||||
font-weight: bold;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
ul,
|
||||
ol {
|
||||
margin: 5px 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #1a73e8;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #0b59d1;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>End User License Agreement (EULA)</h1>
|
||||
|
||||
<p>Please read this license agreement carefully before installing or using this software.</p>
|
||||
|
||||
<h2>1. Copyright</h2>
|
||||
<p>Copyright 漏 2025 Windows Modern. This software and its source code are protected by copyright law.</p>
|
||||
|
||||
<h2>2. License</h2>
|
||||
<p>This software is licensed under the MIT License. You are free to use, copy, modify, and distribute this software and its source code, including for commercial purposes, subject to the terms of the MIT License.</p>
|
||||
|
||||
<h2>3. Third-Party Components</h2>
|
||||
<p>This software includes the following third-party open source components, which are subject to their original licenses:</p>
|
||||
<ul>
|
||||
<li>PriTools (Apache License 2.0) - <a href="https://github.com/chausner/PriTools" target="_blank">https://github.com/chausner/PriTools</a></li>
|
||||
<li>pugixml (MIT License) - <a href="https://pugixml.org/" target="_blank">https://pugixml.org/</a></li>
|
||||
<li>RapidJSON (MIT License) - <a href="https://rapidjson.org/" target="_blank">https://rapidjson.org/</a></li>
|
||||
<li>WinJS (MIT License) - <a href="https://github.com/winjs/winjs" target="_blank">https://github.com/winjs/winjs</a></li>
|
||||
<li>markdown.js (MIT License) - <a href="https://github.com/evilstreak/markdown-js" target="_blank">https://github.com/evilstreak/markdown-js</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>4. Disclaimer</h2>
|
||||
<p>This software is provided "as is", without any express or implied warranties, including but not limited to warranties of merchantability, fitness for a particular purpose, and non-infringement. In no event shall the authors or copyright holders be
|
||||
liable for any damages arising from the use of this software, whether direct, indirect, incidental, or consequential.</p>
|
||||
|
||||
<h2>5. Acceptance</h2>
|
||||
<p>By installing or using this software, you agree to this license agreement. If you do not agree, do not install or use the software.</p>
|
||||
|
||||
</body>
|
||||
|
||||
</html></IDS_CTRL_SCROLLTEXT_BODY>
|
||||
<IDS_CTRL_RADIOBTN_AGREE>I agree to the terms of this license agreement</IDS_CTRL_RADIOBTN_AGREE>
|
||||
<IDS_CTRL_RADIOBTN_DISAGREE>I do not agree to the terms of this license agreement</IDS_CTRL_RADIOBTN_DISAGREE>
|
||||
<IDS_CTRL_SCROLLTEXT_FILE/>
|
||||
@@ -2206,7 +2440,92 @@ end
|
||||
<IDS_CTRL_BUTTON_BACK>< 返回(&B)</IDS_CTRL_BUTTON_BACK>
|
||||
<IDS_CTRL_BUTTON_CANCEL>取消(&C)</IDS_CTRL_BUTTON_CANCEL>
|
||||
<IDS_CTRL_BUTTON_HELP>帮助(&H)</IDS_CTRL_BUTTON_HELP>
|
||||
<IDS_CTRL_SCROLLTEXT_BODY>在此插入您的许可协议文本...</IDS_CTRL_SCROLLTEXT_BODY>
|
||||
<IDS_CTRL_SCROLLTEXT_BODY><!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
|
||||
<title>最终用户许可协议 (EULA)</title>
|
||||
<style>
|
||||
body {
|
||||
/*font-family: "Microsoft YaHei", "Segoe UI", Arial, sans-serif;*/
|
||||
font-size: 9pt;
|
||||
/*color: #333333;
|
||||
background-color: #ffffff;*/
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 12.5pt;
|
||||
font-weight: bold;
|
||||
margin-bottom: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 10.75pt;
|
||||
font-weight: bold;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
ul,
|
||||
ol {
|
||||
margin: 5px 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #1a73e8;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #0b59d1;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>最终用户许可协议 (EULA)</h1>
|
||||
|
||||
<p>请在安装或使用本软件前仔细阅读本许可协议。</p>
|
||||
|
||||
<h2>一、版权声明</h2>
|
||||
<p>Copyright &#169; 2025 Windows Modern. 本软件及其源码受版权法保护。</p>
|
||||
|
||||
<h2>二、许可范围</h2>
|
||||
<p>本软件遵循 MIT 许可协议。您可以在符合 MIT 许可条件下自由使用、复制、修改、分发本软件及其源码,包括商业用途。</p>
|
||||
|
||||
<h2>三、第三方组件</h2>
|
||||
<p>本软件包含以下第三方开源组件,使用这些组件受其原始许可证约束:</p>
|
||||
<ul>
|
||||
<li>PriTools (Apache License 2.0) - <a href="https://github.com/chausner/PriTools" target="_blank">https://github.com/chausner/PriTools</a></li>
|
||||
<li>pugixml (MIT License) - <a href="https://pugixml.org/" target="_blank">https://pugixml.org/</a></li>
|
||||
<li>RapidJSON (MIT License) - <a href="https://rapidjson.org/" target="_blank">https://rapidjson.org/</a></li>
|
||||
<li>WinJS (MIT License) - <a href="https://github.com/winjs/winjs" target="_blank">https://github.com/winjs/winjs</a></li>
|
||||
<li>markdown.js (MIT License) - <a href="https://github.com/evilstreak/markdown-js" target="_blank">https://github.com/evilstreak/markdown-js</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>四、免责声明</h2>
|
||||
<p>本软件按“原样”提供,不附带任何明示或暗示的担保,包括但不限于适销性、特定用途适用性和非侵权的保证。无论在何种情况下,作者或版权持有人均不对因使用本软件产生的任何直接、间接、偶然或特殊损害负责。</p>
|
||||
|
||||
<h2>五、接受条款</h2>
|
||||
<p>安装或使用本软件即表示您接受本许可协议。如果您不同意本协议,请不要安装或使用本软件。</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</IDS_CTRL_SCROLLTEXT_BODY>
|
||||
<IDS_CTRL_RADIOBTN_AGREE>我同意该许可协议的条款</IDS_CTRL_RADIOBTN_AGREE>
|
||||
<IDS_CTRL_RADIOBTN_DISAGREE>我不同意该许可协议的条款</IDS_CTRL_RADIOBTN_DISAGREE>
|
||||
<IDS_CTRL_SCROLLTEXT_FILE/>
|
||||
@@ -4164,7 +4483,7 @@ function CreateShortcut(lnkpath, targetfile, appid)
|
||||
return ret;
|
||||
end
|
||||
function SetDesktopInit(inipath, section, key, value)
|
||||
ret = File.Run(SessionVar.Expand ("%AppFolder%\\desktopini.exe"), "\"" .. inipath .. "\" \"" .. section .. "\" \"" .. key .. "\" \"" .. value .. "\"", "", SW_SHOWNORMAL, true);
|
||||
ret = File.Run(SessionVar.Expand ("%AppFolder%\\desktopini.exe"), "\"" .. inipath .. "\" \"" .. section .. "\" \"" .. key .. "\" \"" .. value .. "\"", "", SW_HIDE, true);
|
||||
return ret;
|
||||
end
|
||||
startitemfolder = SessionVar.Expand ("%StartProgramsFolderCommon%\\%AppShortcutFolderName%");
|
||||
@@ -4179,7 +4498,8 @@ SetDesktopInit (desktopini, ".ShellClassInfo", "ConfirmFileOp", 0);
|
||||
SetDesktopInit (desktopini, "LocalizedFileNames", "App Installer.lnk", SessionVar.Expand("@%AppFolder%\\appinstaller.exe,-300"));
|
||||
SetDesktopInit (desktopini, "LocalizedFileNames", "Settings.lnk", SessionVar.Expand("@%AppFolder%\\settings.exe,-200"));
|
||||
SetDesktopInit (desktopini, "LocalizedFileNames", "Update.lnk", SessionVar.Expand("@%AppFolder%\\reslib.dll,-103"));
|
||||
SetDesktopInit (desktopini, "LocalizedFileNames", "Uninstaller.lnk", SessionVar.Expand("@%AppFolder%\\reslib.dll,-131"));
|
||||
SetDesktopInit (desktopini, "LocalizedFileNames", "Uninstall.lnk", SessionVar.Expand("@%AppFolder%\\reslib.dll,-131"));
|
||||
SetDesktopInit (desktopini, ".ShellClassInfo", "LocalizedResourceName", SessionVar.Expand("@%AppFolder%\\appinstaller.exe,-300"));
|
||||
|
||||
DlgScrollingText.AppendLine(CTRL_SCROLLTEXT_BODY, "Updating system PATH...");
|
||||
local appFolder = SessionVar.Expand("%AppFolder%");
|
||||
@@ -6181,7 +6501,7 @@ g_HandleSystemReboot();
|
||||
</SessionVar>
|
||||
<SessionVar>
|
||||
<Name>%ProductVer%</Name>
|
||||
<Value>0.1.0.0</Value>
|
||||
<Value>0.2.0.0</Value>
|
||||
<Type>1</Type>
|
||||
</SessionVar>
|
||||
<SessionVar>
|
||||
@@ -687,7 +687,7 @@
|
||||
<CustSCPath>%StartProgramsFolderCommon%\\%AppShortcutFolderName%</CustSCPath>
|
||||
<SCDesc>Update</SCDesc>
|
||||
<SCComment/>
|
||||
<SCArgs>appinstaller update /autoupdate</SCArgs>
|
||||
<SCArgs>appinstaller update /checkupdate</SCArgs>
|
||||
<SCWork/>
|
||||
<UseExtIco>0</UseExtIco>
|
||||
<IcoFN/>
|
||||
@@ -953,6 +953,152 @@
|
||||
<CRC>0</CRC>
|
||||
<StoreOnly>0</StoreOnly>
|
||||
</FileData>
|
||||
<FileData>
|
||||
<FldRef>0</FldRef>
|
||||
<FullName>E:\Profiles\Bruce\Documents\Visual Studio 2015\Projects\AppInstallerReset\Release\PriFileFormat.dll.config</FullName>
|
||||
<FileName>PriFileFormat.dll.config</FileName>
|
||||
<Source>E:\Profiles\Bruce\Documents\Visual Studio 2015\Projects\AppInstallerReset\Release</Source>
|
||||
<Ext>config</Ext>
|
||||
<RTSource>档案</RTSource>
|
||||
<Desc/>
|
||||
<Recurse>1</Recurse>
|
||||
<MatchMode>0</MatchMode>
|
||||
<Dest>%AppFolder%</Dest>
|
||||
<Overwrite>1</Overwrite>
|
||||
<Backup>0</Backup>
|
||||
<Protect>0</Protect>
|
||||
<InstallOrder>1000</InstallOrder>
|
||||
<SCStartRoot>0</SCStartRoot>
|
||||
<SCStartProgs>0</SCStartProgs>
|
||||
<SCAppFld>0</SCAppFld>
|
||||
<SCStartup>0</SCStartup>
|
||||
<SCDesk>0</SCDesk>
|
||||
<SCQLaunch>0</SCQLaunch>
|
||||
<SCStartPinOption>0</SCStartPinOption>
|
||||
<SCCust>0</SCCust>
|
||||
<CustSCPath/>
|
||||
<SCDesc/>
|
||||
<SCComment/>
|
||||
<SCArgs/>
|
||||
<SCWork/>
|
||||
<UseExtIco>0</UseExtIco>
|
||||
<IcoFN/>
|
||||
<IcoIdx>0</IcoIdx>
|
||||
<IcoShowMd>0</IcoShowMd>
|
||||
<IcoHK>0</IcoHK>
|
||||
<RegTTF>0</RegTTF>
|
||||
<TTFName/>
|
||||
<RegOCX>0</RegOCX>
|
||||
<RegTLB>0</RegTLB>
|
||||
<SupInUse>0</SupInUse>
|
||||
<Compress>1</Compress>
|
||||
<UseOrigAttr>1</UseOrigAttr>
|
||||
<Attr>0</Attr>
|
||||
<NoCRC>0</NoCRC>
|
||||
<NoRemove>0</NoRemove>
|
||||
<Shared>0</Shared>
|
||||
<OSCond>
|
||||
<OS>32768</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
</OSCond>
|
||||
<RTCond/>
|
||||
<BuildConfigs>
|
||||
<Cfg>All</Cfg>
|
||||
</BuildConfigs>
|
||||
<Package>None</Package>
|
||||
<Packages/>
|
||||
<Notes/>
|
||||
<CompSize>0</CompSize>
|
||||
<CRC>0</CRC>
|
||||
<StoreOnly>0</StoreOnly>
|
||||
</FileData>
|
||||
<FileData>
|
||||
<FldRef>0</FldRef>
|
||||
<FullName>E:\Profiles\Bruce\Documents\Visual Studio 2015\Projects\AppInstallerReset\Release\priformatcli.dll.metagen</FullName>
|
||||
<FileName>priformatcli.dll.metagen</FileName>
|
||||
<Source>E:\Profiles\Bruce\Documents\Visual Studio 2015\Projects\AppInstallerReset\Release</Source>
|
||||
<Ext>metagen</Ext>
|
||||
<RTSource>档案</RTSource>
|
||||
<Desc/>
|
||||
<Recurse>1</Recurse>
|
||||
<MatchMode>0</MatchMode>
|
||||
<Dest>%AppFolder%</Dest>
|
||||
<Overwrite>1</Overwrite>
|
||||
<Backup>0</Backup>
|
||||
<Protect>0</Protect>
|
||||
<InstallOrder>1000</InstallOrder>
|
||||
<SCStartRoot>0</SCStartRoot>
|
||||
<SCStartProgs>0</SCStartProgs>
|
||||
<SCAppFld>0</SCAppFld>
|
||||
<SCStartup>0</SCStartup>
|
||||
<SCDesk>0</SCDesk>
|
||||
<SCQLaunch>0</SCQLaunch>
|
||||
<SCStartPinOption>0</SCStartPinOption>
|
||||
<SCCust>0</SCCust>
|
||||
<CustSCPath/>
|
||||
<SCDesc/>
|
||||
<SCComment/>
|
||||
<SCArgs/>
|
||||
<SCWork/>
|
||||
<UseExtIco>0</UseExtIco>
|
||||
<IcoFN/>
|
||||
<IcoIdx>0</IcoIdx>
|
||||
<IcoShowMd>0</IcoShowMd>
|
||||
<IcoHK>0</IcoHK>
|
||||
<RegTTF>0</RegTTF>
|
||||
<TTFName/>
|
||||
<RegOCX>0</RegOCX>
|
||||
<RegTLB>0</RegTLB>
|
||||
<SupInUse>0</SupInUse>
|
||||
<Compress>1</Compress>
|
||||
<UseOrigAttr>1</UseOrigAttr>
|
||||
<Attr>0</Attr>
|
||||
<NoCRC>0</NoCRC>
|
||||
<NoRemove>0</NoRemove>
|
||||
<Shared>0</Shared>
|
||||
<OSCond>
|
||||
<OS>32768</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
<OS>65535</OS>
|
||||
</OSCond>
|
||||
<RTCond/>
|
||||
<BuildConfigs>
|
||||
<Cfg>All</Cfg>
|
||||
</BuildConfigs>
|
||||
<Package>None</Package>
|
||||
<Packages/>
|
||||
<Notes/>
|
||||
<CompSize>0</CompSize>
|
||||
<CRC>0</CRC>
|
||||
<StoreOnly>0</StoreOnly>
|
||||
</FileData>
|
||||
</ArchiveFiles>
|
||||
<ExternalFiles/>
|
||||
<BeforeInstallingScreens>
|
||||
@@ -2119,7 +2265,7 @@ end
|
||||
<Visible>1</Visible>
|
||||
<Enabled>1</Enabled>
|
||||
<TabOrder>0</TabOrder>
|
||||
<IsHTML>0</IsHTML>
|
||||
<IsHTML>1</IsHTML>
|
||||
<TextAlign>0</TextAlign>
|
||||
<VertScroll>1</VertScroll>
|
||||
<HorizScroll>0</HorizScroll>
|
||||
@@ -2180,7 +2326,97 @@ end
|
||||
<IDS_CTRL_BUTTON_BACK>< &Back</IDS_CTRL_BUTTON_BACK>
|
||||
<IDS_CTRL_BUTTON_CANCEL>&Cancel</IDS_CTRL_BUTTON_CANCEL>
|
||||
<IDS_CTRL_BUTTON_HELP>&Help</IDS_CTRL_BUTTON_HELP>
|
||||
<IDS_CTRL_SCROLLTEXT_BODY>Insert your license agreement text here...</IDS_CTRL_SCROLLTEXT_BODY>
|
||||
<IDS_CTRL_SCROLLTEXT_BODY><!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>End User License Agreement</title>
|
||||
<style>
|
||||
body {
|
||||
/*font-family: "Segoe UI", "Microsoft YaHei", Arial, sans-serif;*/
|
||||
font-size: 9pt;
|
||||
/*color: #333333;
|
||||
background-color: #ffffff;*/
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 12.5pt;
|
||||
font-weight: bold;
|
||||
margin-bottom: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 10.75pt;
|
||||
font-weight: bold;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
ul,
|
||||
ol {
|
||||
margin: 5px 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #1a73e8;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #0b59d1;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>End User License Agreement</h1>
|
||||
|
||||
<p>Please read this license agreement carefully before installing or using this software.</p>
|
||||
|
||||
<h2>1. Copyright</h2>
|
||||
<p>Copyright 漏 2025 Windows Modern. This software and its source code are protected by copyright law.</p>
|
||||
|
||||
<h2>2. License</h2>
|
||||
<p>This software is licensed under the MIT License. You are free to use, copy, modify, and distribute this software and its source code, including for commercial purposes, subject to the terms of the MIT License.</p>
|
||||
|
||||
<h2>3. Third-Party Components</h2>
|
||||
<p>This software includes the following third-party open source components, which are subject to their original licenses:</p>
|
||||
<ul>
|
||||
<li>PriTools (Apache License 2.0) - <a href="https://github.com/chausner/PriTools" target="_blank">https://github.com/chausner/PriTools</a></li>
|
||||
<li>pugixml (MIT License) - <a href="https://pugixml.org/" target="_blank">https://pugixml.org/</a></li>
|
||||
<li>RapidJSON (MIT License) - <a href="https://rapidjson.org/" target="_blank">https://rapidjson.org/</a></li>
|
||||
<li>WinJS (MIT License) - <a href="https://github.com/winjs/winjs" target="_blank">https://github.com/winjs/winjs</a></li>
|
||||
<li>markdown.js (MIT License) - <a href="https://github.com/evilstreak/markdown-js" target="_blank">https://github.com/evilstreak/markdown-js</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>4. Disclaimer</h2>
|
||||
<p>This software is provided "as is", without any express or implied warranties, including but not limited to warranties of merchantability, fitness for a particular purpose, and non-infringement. In no event shall the authors or copyright holders be
|
||||
liable for any damages arising from the use of this software, whether direct, indirect, incidental, or consequential.</p>
|
||||
|
||||
<h2>5. Acceptance</h2>
|
||||
<p>By installing or using this software, you agree to this license agreement. If you do not agree, do not install or use the software.</p>
|
||||
<br>
|
||||
</body>
|
||||
|
||||
</html></IDS_CTRL_SCROLLTEXT_BODY>
|
||||
<IDS_CTRL_RADIOBTN_AGREE>I agree to the terms of this license agreement</IDS_CTRL_RADIOBTN_AGREE>
|
||||
<IDS_CTRL_RADIOBTN_DISAGREE>I do not agree to the terms of this license agreement</IDS_CTRL_RADIOBTN_DISAGREE>
|
||||
<IDS_CTRL_SCROLLTEXT_FILE/>
|
||||
@@ -2206,7 +2442,94 @@ end
|
||||
<IDS_CTRL_BUTTON_BACK>< 返回(&B)</IDS_CTRL_BUTTON_BACK>
|
||||
<IDS_CTRL_BUTTON_CANCEL>取消(&C)</IDS_CTRL_BUTTON_CANCEL>
|
||||
<IDS_CTRL_BUTTON_HELP>帮助(&H)</IDS_CTRL_BUTTON_HELP>
|
||||
<IDS_CTRL_SCROLLTEXT_BODY>在此插入您的许可协议文本...</IDS_CTRL_SCROLLTEXT_BODY>
|
||||
<IDS_CTRL_SCROLLTEXT_BODY><!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
|
||||
<title>最终用户许可协议</title>
|
||||
<style>
|
||||
body {
|
||||
/*font-family: "Microsoft YaHei", "Segoe UI", Arial, sans-serif;*/
|
||||
font-size: 9pt;
|
||||
/*color: #333333;
|
||||
background-color: #ffffff;*/
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 12.5pt;
|
||||
font-weight: bold;
|
||||
margin-bottom: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 10.75pt;
|
||||
font-weight: bold;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
ul,
|
||||
ol {
|
||||
margin: 5px 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #1a73e8;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #0b59d1;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>最终用户许可协议</h1>
|
||||
|
||||
<p>请在安装或使用本软件前仔细阅读本许可协议。</p>
|
||||
|
||||
<h2>一、版权声明</h2>
|
||||
<p>Copyright &#169; 2025 Windows Modern. 本软件及其源码受版权法保护。</p>
|
||||
|
||||
<h2>二、许可范围</h2>
|
||||
<p>本软件遵循 MIT 许可协议。您可以在符合 MIT 许可条件下自由使用、复制、修改、分发本软件及其源码,包括商业用途。</p>
|
||||
|
||||
<h2>三、第三方组件</h2>
|
||||
<p>本软件包含以下第三方开源组件,使用这些组件受其原始许可证约束:</p>
|
||||
<ul>
|
||||
<li>PriTools (Apache License 2.0) - <a href="https://github.com/chausner/PriTools" target="_blank">https://github.com/chausner/PriTools</a></li>
|
||||
<li>pugixml (MIT License) - <a href="https://pugixml.org/" target="_blank">https://pugixml.org/</a></li>
|
||||
<li>RapidJSON (MIT License) - <a href="https://rapidjson.org/" target="_blank">https://rapidjson.org/</a></li>
|
||||
<li>WinJS (MIT License) - <a href="https://github.com/winjs/winjs" target="_blank">https://github.com/winjs/winjs</a></li>
|
||||
<li>markdown.js (MIT License) - <a href="https://github.com/evilstreak/markdown-js" target="_blank">https://github.com/evilstreak/markdown-js</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>四、免责声明</h2>
|
||||
<p>本软件按“原样”提供,不附带任何明示或暗示的担保,包括但不限于适销性、特定用途适用性和非侵权的保证。无论在何种情况下,作者或版权持有人均不对因使用本软件产生的任何直接、间接、偶然或特殊损害负责。</p>
|
||||
|
||||
<h2>五、接受条款</h2>
|
||||
<p>安装或使用本软件即表示您接受本许可协议。如果您不同意本协议,请不要安装或使用本软件。</p>
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
||||
</IDS_CTRL_SCROLLTEXT_BODY>
|
||||
<IDS_CTRL_RADIOBTN_AGREE>我同意该许可协议的条款</IDS_CTRL_RADIOBTN_AGREE>
|
||||
<IDS_CTRL_RADIOBTN_DISAGREE>我不同意该许可协议的条款</IDS_CTRL_RADIOBTN_DISAGREE>
|
||||
<IDS_CTRL_SCROLLTEXT_FILE/>
|
||||
@@ -4164,13 +4487,13 @@ function CreateShortcut(lnkpath, targetfile, appid)
|
||||
return ret;
|
||||
end
|
||||
function SetDesktopInit(inipath, section, key, value)
|
||||
ret = File.Run(SessionVar.Expand ("%AppFolder%\\desktopini.exe"), "\"" .. inipath .. "\" \"" .. section .. "\" \"" .. key .. "\" \"" .. value .. "\"", "", SW_SHOWNORMAL, true);
|
||||
ret = File.Run(SessionVar.Expand ("%AppFolder%\\desktopini.exe"), "\"" .. inipath .. "\" \"" .. section .. "\" \"" .. key .. "\" \"" .. value .. "\"", "", SW_HIDE, true);
|
||||
return ret;
|
||||
end
|
||||
startitemfolder = SessionVar.Expand ("%StartProgramsFolderCommon%\\%AppShortcutFolderName%");
|
||||
applnkpath = startitemfolder .. "\\App Installer.lnk";
|
||||
setlnkpath = startitemfolder .. "\\Settings.lnk";
|
||||
desktopini = startitemfolder .. "\\desktop.ini";
|
||||
desktopini = startitemfolder .. "";
|
||||
CreateShortcut (applnkpath, SessionVar.Expand("%AppFolder%\\appinstaller.exe"), "Microsoft.DesktopAppInstaller!App");
|
||||
Registry.SetValue(HKEY_CURRENT_USER, "SOFTWARE\\Windows Modern\\App Installer", "AppInstallerLnk", applnkpath, REG_SZ);
|
||||
CreateShortcut (setlnkpath, SessionVar.Expand("%AppFolder%\\settings.exe"), "WindowsModern.PracticalToolsProject!Settings");
|
||||
@@ -4179,7 +4502,8 @@ SetDesktopInit (desktopini, ".ShellClassInfo", "ConfirmFileOp", 0);
|
||||
SetDesktopInit (desktopini, "LocalizedFileNames", "App Installer.lnk", SessionVar.Expand("@%AppFolder%\\appinstaller.exe,-300"));
|
||||
SetDesktopInit (desktopini, "LocalizedFileNames", "Settings.lnk", SessionVar.Expand("@%AppFolder%\\settings.exe,-200"));
|
||||
SetDesktopInit (desktopini, "LocalizedFileNames", "Update.lnk", SessionVar.Expand("@%AppFolder%\\reslib.dll,-103"));
|
||||
SetDesktopInit (desktopini, "LocalizedFileNames", "Uninstaller.lnk", SessionVar.Expand("@%AppFolder%\\reslib.dll,-131"));
|
||||
SetDesktopInit (desktopini, "LocalizedFileNames", "Uninstall.lnk", SessionVar.Expand("@%AppFolder%\\reslib.dll,-131"));
|
||||
SetDesktopInit (desktopini, ".ShellClassInfo", "LocalizedResourceName", SessionVar.Expand("@%AppFolder%\\appinstaller.exe,-300"));
|
||||
|
||||
DlgScrollingText.AppendLine(CTRL_SCROLLTEXT_BODY, "Updating system PATH...");
|
||||
local appFolder = SessionVar.Expand("%AppFolder%");
|
||||
@@ -6181,7 +6505,7 @@ g_HandleSystemReboot();
|
||||
</SessionVar>
|
||||
<SessionVar>
|
||||
<Name>%ProductVer%</Name>
|
||||
<Value>0.1.0.0</Value>
|
||||
<Value>0.2.0.0</Value>
|
||||
<Type>1</Type>
|
||||
</SessionVar>
|
||||
<SessionVar>
|
||||
@@ -2265,7 +2265,7 @@ end
|
||||
<Visible>1</Visible>
|
||||
<Enabled>1</Enabled>
|
||||
<TabOrder>0</TabOrder>
|
||||
<IsHTML>0</IsHTML>
|
||||
<IsHTML>1</IsHTML>
|
||||
<TextAlign>0</TextAlign>
|
||||
<VertScroll>1</VertScroll>
|
||||
<HorizScroll>0</HorizScroll>
|
||||
@@ -2326,7 +2326,97 @@ end
|
||||
<IDS_CTRL_BUTTON_BACK>< &Back</IDS_CTRL_BUTTON_BACK>
|
||||
<IDS_CTRL_BUTTON_CANCEL>&Cancel</IDS_CTRL_BUTTON_CANCEL>
|
||||
<IDS_CTRL_BUTTON_HELP>&Help</IDS_CTRL_BUTTON_HELP>
|
||||
<IDS_CTRL_SCROLLTEXT_BODY>Insert your license agreement text here...</IDS_CTRL_SCROLLTEXT_BODY>
|
||||
<IDS_CTRL_SCROLLTEXT_BODY><!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>End User License Agreement</title>
|
||||
<style>
|
||||
body {
|
||||
/*font-family: "Segoe UI", "Microsoft YaHei", Arial, sans-serif;*/
|
||||
font-size: 9pt;
|
||||
/*color: #333333;
|
||||
background-color: #ffffff;*/
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 12.5pt;
|
||||
font-weight: bold;
|
||||
margin-bottom: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 10.75pt;
|
||||
font-weight: bold;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
ul,
|
||||
ol {
|
||||
margin: 5px 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #1a73e8;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #0b59d1;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>End User License Agreement</h1>
|
||||
|
||||
<p>Please read this license agreement carefully before installing or using this software.</p>
|
||||
|
||||
<h2>1. Copyright</h2>
|
||||
<p>Copyright 漏 2025 Windows Modern. This software and its source code are protected by copyright law.</p>
|
||||
|
||||
<h2>2. License</h2>
|
||||
<p>This software is licensed under the MIT License. You are free to use, copy, modify, and distribute this software and its source code, including for commercial purposes, subject to the terms of the MIT License.</p>
|
||||
|
||||
<h2>3. Third-Party Components</h2>
|
||||
<p>This software includes the following third-party open source components, which are subject to their original licenses:</p>
|
||||
<ul>
|
||||
<li>PriTools (Apache License 2.0) - <a href="https://github.com/chausner/PriTools" target="_blank">https://github.com/chausner/PriTools</a></li>
|
||||
<li>pugixml (MIT License) - <a href="https://pugixml.org/" target="_blank">https://pugixml.org/</a></li>
|
||||
<li>RapidJSON (MIT License) - <a href="https://rapidjson.org/" target="_blank">https://rapidjson.org/</a></li>
|
||||
<li>WinJS (MIT License) - <a href="https://github.com/winjs/winjs" target="_blank">https://github.com/winjs/winjs</a></li>
|
||||
<li>markdown.js (MIT License) - <a href="https://github.com/evilstreak/markdown-js" target="_blank">https://github.com/evilstreak/markdown-js</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>4. Disclaimer</h2>
|
||||
<p>This software is provided "as is", without any express or implied warranties, including but not limited to warranties of merchantability, fitness for a particular purpose, and non-infringement. In no event shall the authors or copyright holders be
|
||||
liable for any damages arising from the use of this software, whether direct, indirect, incidental, or consequential.</p>
|
||||
|
||||
<h2>5. Acceptance</h2>
|
||||
<p>By installing or using this software, you agree to this license agreement. If you do not agree, do not install or use the software.</p>
|
||||
<br>
|
||||
</body>
|
||||
|
||||
</html></IDS_CTRL_SCROLLTEXT_BODY>
|
||||
<IDS_CTRL_RADIOBTN_AGREE>I agree to the terms of this license agreement</IDS_CTRL_RADIOBTN_AGREE>
|
||||
<IDS_CTRL_RADIOBTN_DISAGREE>I do not agree to the terms of this license agreement</IDS_CTRL_RADIOBTN_DISAGREE>
|
||||
<IDS_CTRL_SCROLLTEXT_FILE/>
|
||||
@@ -2352,7 +2442,94 @@ end
|
||||
<IDS_CTRL_BUTTON_BACK>< 返回(&B)</IDS_CTRL_BUTTON_BACK>
|
||||
<IDS_CTRL_BUTTON_CANCEL>取消(&C)</IDS_CTRL_BUTTON_CANCEL>
|
||||
<IDS_CTRL_BUTTON_HELP>帮助(&H)</IDS_CTRL_BUTTON_HELP>
|
||||
<IDS_CTRL_SCROLLTEXT_BODY>在此插入您的许可协议文本...</IDS_CTRL_SCROLLTEXT_BODY>
|
||||
<IDS_CTRL_SCROLLTEXT_BODY><!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
|
||||
<title>最终用户许可协议</title>
|
||||
<style>
|
||||
body {
|
||||
/*font-family: "Microsoft YaHei", "Segoe UI", Arial, sans-serif;*/
|
||||
font-size: 9pt;
|
||||
/*color: #333333;
|
||||
background-color: #ffffff;*/
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 12.5pt;
|
||||
font-weight: bold;
|
||||
margin-bottom: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 10.75pt;
|
||||
font-weight: bold;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
ul,
|
||||
ol {
|
||||
margin: 5px 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #1a73e8;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #0b59d1;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>最终用户许可协议</h1>
|
||||
|
||||
<p>请在安装或使用本软件前仔细阅读本许可协议。</p>
|
||||
|
||||
<h2>一、版权声明</h2>
|
||||
<p>Copyright &#169; 2025 Windows Modern. 本软件及其源码受版权法保护。</p>
|
||||
|
||||
<h2>二、许可范围</h2>
|
||||
<p>本软件遵循 MIT 许可协议。您可以在符合 MIT 许可条件下自由使用、复制、修改、分发本软件及其源码,包括商业用途。</p>
|
||||
|
||||
<h2>三、第三方组件</h2>
|
||||
<p>本软件包含以下第三方开源组件,使用这些组件受其原始许可证约束:</p>
|
||||
<ul>
|
||||
<li>PriTools (Apache License 2.0) - <a href="https://github.com/chausner/PriTools" target="_blank">https://github.com/chausner/PriTools</a></li>
|
||||
<li>pugixml (MIT License) - <a href="https://pugixml.org/" target="_blank">https://pugixml.org/</a></li>
|
||||
<li>RapidJSON (MIT License) - <a href="https://rapidjson.org/" target="_blank">https://rapidjson.org/</a></li>
|
||||
<li>WinJS (MIT License) - <a href="https://github.com/winjs/winjs" target="_blank">https://github.com/winjs/winjs</a></li>
|
||||
<li>markdown.js (MIT License) - <a href="https://github.com/evilstreak/markdown-js" target="_blank">https://github.com/evilstreak/markdown-js</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>四、免责声明</h2>
|
||||
<p>本软件按“原样”提供,不附带任何明示或暗示的担保,包括但不限于适销性、特定用途适用性和非侵权的保证。无论在何种情况下,作者或版权持有人均不对因使用本软件产生的任何直接、间接、偶然或特殊损害负责。</p>
|
||||
|
||||
<h2>五、接受条款</h2>
|
||||
<p>安装或使用本软件即表示您接受本许可协议。如果您不同意本协议,请不要安装或使用本软件。</p>
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
||||
</IDS_CTRL_SCROLLTEXT_BODY>
|
||||
<IDS_CTRL_RADIOBTN_AGREE>我同意该许可协议的条款</IDS_CTRL_RADIOBTN_AGREE>
|
||||
<IDS_CTRL_RADIOBTN_DISAGREE>我不同意该许可协议的条款</IDS_CTRL_RADIOBTN_DISAGREE>
|
||||
<IDS_CTRL_SCROLLTEXT_FILE/>
|
||||
|
||||
BIN
pkgmgr/pkgmgr.rc
BIN
pkgmgr/pkgmgr.rc
Binary file not shown.
Binary file not shown.
BIN
reslib/reslib.rc
BIN
reslib/reslib.rc
Binary file not shown.
Binary file not shown.
@@ -574,6 +574,97 @@ bool KillProcessByFilePath (
|
||||
CloseHandle (hSnap);
|
||||
return killed;
|
||||
}
|
||||
static std::wstring QueryVersionString (const BYTE *data, const std::wstring &langCode,
|
||||
const wchar_t *key)
|
||||
{
|
||||
wchar_t query [256] = {0};
|
||||
wsprintfW (query, L"\\StringFileInfo\\%s\\%s", langCode.c_str (), key);
|
||||
LPWSTR value = nullptr;
|
||||
UINT len = 0;
|
||||
if (VerQueryValueW (data, query, (LPVOID *)&value, &len) && value)
|
||||
return std::wstring (value ? value : L"", len);
|
||||
return L"";
|
||||
}
|
||||
rapidjson::Document GetFileVersionAsJson (const std::wstring &filePath)
|
||||
{
|
||||
rapidjson::Document doc;
|
||||
doc.SetObject ();
|
||||
auto &alloc = doc.GetAllocator ();
|
||||
DWORD dummy = 0;
|
||||
DWORD size = GetFileVersionInfoSizeW (filePath.c_str (), &dummy);
|
||||
if (size == 0)
|
||||
{
|
||||
doc.AddMember ("error", "No version info", alloc);
|
||||
return doc;
|
||||
}
|
||||
std::vector <BYTE> data (size);
|
||||
if (!GetFileVersionInfoW (filePath.c_str (), 0, size, data.data ()))
|
||||
{
|
||||
doc.AddMember ("error", "GetFileVersionInfoW failed", alloc);
|
||||
return doc;
|
||||
}
|
||||
struct LANGANDCODEPAGE
|
||||
{
|
||||
WORD wLanguage;
|
||||
WORD wCodePage;
|
||||
};
|
||||
LANGANDCODEPAGE *lpTranslate = nullptr;
|
||||
UINT cbTranslate = 0;
|
||||
if (!VerQueryValueW (data.data (),
|
||||
L"\\VarFileInfo\\Translation",
|
||||
(LPVOID *)&lpTranslate,
|
||||
&cbTranslate))
|
||||
{
|
||||
doc.AddMember ("error", "No Translation", alloc);
|
||||
return doc;
|
||||
}
|
||||
wchar_t langCode [20] = {};
|
||||
wsprintfW (langCode, L"%04x%04x",
|
||||
lpTranslate [0].wLanguage,
|
||||
lpTranslate [0].wCodePage);
|
||||
std::wstring lc = langCode;
|
||||
const wchar_t *keys [] =
|
||||
{
|
||||
L"CompanyName",
|
||||
L"FileDescription",
|
||||
L"FileVersion",
|
||||
L"InternalName",
|
||||
L"OriginalFilename",
|
||||
L"ProductName",
|
||||
L"ProductVersion",
|
||||
L"LegalCopyright"
|
||||
};
|
||||
for (auto key : keys)
|
||||
{
|
||||
std::wstring val = QueryVersionString (data.data (), lc, key);
|
||||
if (!val.empty ())
|
||||
{
|
||||
rapidjson::Value k;
|
||||
k.SetString (WStringToString (key, CP_UTF8).c_str (), alloc);
|
||||
rapidjson::Value v;
|
||||
v.SetString (WStringToString (val, CP_UTF8).c_str (), alloc);
|
||||
doc.AddMember (k, v, alloc);
|
||||
}
|
||||
}
|
||||
VS_FIXEDFILEINFO *ffi = nullptr;
|
||||
UINT ffiLen = 0;
|
||||
if (VerQueryValueW (data.data (), L"\\", (LPVOID *)&ffi, &ffiLen))
|
||||
{
|
||||
if (ffi && ffiLen)
|
||||
{
|
||||
wchar_t ver [64];
|
||||
wsprintfW (ver, L"%u.%u.%u.%u",
|
||||
HIWORD (ffi->dwFileVersionMS),
|
||||
LOWORD (ffi->dwFileVersionMS),
|
||||
HIWORD (ffi->dwFileVersionLS),
|
||||
LOWORD (ffi->dwFileVersionLS));
|
||||
doc.AddMember ("FileVersionRaw",
|
||||
rapidjson::Value ().SetString (WStringToString (ver, CP_UTF8).c_str (), alloc),
|
||||
alloc);
|
||||
}
|
||||
}
|
||||
return doc;
|
||||
}
|
||||
|
||||
[ComVisible (true)]
|
||||
public ref class SplashForm: public System::Windows::Forms::Form
|
||||
@@ -946,11 +1037,22 @@ public ref class MainHtmlWnd: public System::Windows::Forms::Form, public IScrip
|
||||
property _I_Download ^Download { _I_Download ^get () { return download; }}
|
||||
property _I_Process ^Process { _I_Process ^get () { return proc; }}
|
||||
property _I_ResourcePri ^WinJsStringRes { _I_ResourcePri ^get () { return winjs_res; }}
|
||||
property _I_ResourcePri ^StringResources { _I_ResourcePri ^get () { return winjs_res; }}
|
||||
String ^FormatDateTime (String ^fmt, String ^jsDate) { return FormatString (fmt, Convert::ToDateTime (jsDate)); }
|
||||
property String ^CmdArgs { String ^get () { return CStringToMPString (StringArrayToJson (g_cmdargs)); }}
|
||||
property bool Jump1 { bool get () { return hasjump1; } void set (bool value) { hasjump1 = value; } }
|
||||
property bool Jump2 { bool get () { return hasjump2; } void set (bool value) { hasjump2 = value; } }
|
||||
property bool Exec1 { bool get () { return hasexec; } void set (bool value) { hasexec = value; } }
|
||||
property double TBProgress { void set (double value) { wndinst->TProgressPercent = value; }}
|
||||
property DWORD TBState { void set (DWORD value) { wndinst->TProgressState = (TBPFLAG)value; }}
|
||||
String ^GetVersionInfoToJSON (String ^filepath)
|
||||
{
|
||||
auto doc = GetFileVersionAsJson (MPStringToStdW (filepath));
|
||||
rapidjson::StringBuffer buffer;
|
||||
rapidjson::Writer <rapidjson::StringBuffer> writer (buffer);
|
||||
doc.Accept (writer);
|
||||
return CStringToMPString (StringToWString (buffer.GetString (), CP_UTF8));
|
||||
}
|
||||
void CloseWindow ()
|
||||
{
|
||||
if (wndinst && wndinst->IsHandleCreated) wndinst->Close ();
|
||||
@@ -1243,6 +1345,9 @@ public ref class MainHtmlWnd: public System::Windows::Forms::Form, public IScrip
|
||||
web2->ExecWB (OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, &v, nullptr);
|
||||
}
|
||||
}
|
||||
// 只能设置。0 - 100
|
||||
property double TProgressPercent { void set (double progressPercent) { if (taskbar) taskbar->SetProgressValue (InvokeGetHWND (), progressPercent * 100, 100 * 100); }}
|
||||
property TBPFLAG TProgressState { void set (TBPFLAG state) { if (taskbar) taskbar->SetProgressState (InvokeGetHWND (), state); }}
|
||||
~MainHtmlWnd ()
|
||||
{
|
||||
if (taskbar) taskbar->Release ();
|
||||
|
||||
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -39,7 +39,21 @@ var MBRET = {
|
||||
Object.freeze(MBFLAGS);
|
||||
Object.freeze(MBRET);
|
||||
|
||||
function GetLocaleStringFromResId(resId) { return Bridge.Resources.byid(resId); }
|
||||
(function(global) {
|
||||
try {
|
||||
var storage = Bridge.External.Storage;
|
||||
var path = storage.path;
|
||||
var root = path.getDir(path.program);
|
||||
var respath = path.combine(root, "reslib.dll");
|
||||
var res = Bridge.Resources;
|
||||
global.respath = respath;
|
||||
global.getPublicRes = function(resId) {
|
||||
return res.fromfile(respath, resId);
|
||||
}
|
||||
} catch (e) {}
|
||||
})(this);
|
||||
|
||||
function GetLocaleStringFromResId(resId) { try { return getPublicRes(resId); } catch (e) {} }
|
||||
var msgboxResult = {};
|
||||
|
||||
function MessageBox(_lpText, _lpCaption, _uType, _objColor) {
|
||||
@@ -115,9 +129,29 @@ function MessageBoxForJS(_lpText, _lpCaption, _uType, _objColor, _callback) {
|
||||
msgcaption.appendChild(msgtitle);
|
||||
}
|
||||
}
|
||||
if (_lpText instanceof HTMLElement) {
|
||||
_lpText.classList.add("notice-text");
|
||||
msgcontent.appendChild(_lpText);
|
||||
if (_lpText instanceof HTMLElement || _lpText instanceof HTMLDivElement || typeof _lpText !== "string") {
|
||||
try {
|
||||
_lpText.classList.add("notice-text");
|
||||
msgcontent.appendChild(_lpText);
|
||||
} catch (e) {
|
||||
if (!IsBlackLabel(_lpText)) {
|
||||
var msgtext = document.createElement("p");
|
||||
msgtext.textContent = _lpText;
|
||||
msgtext.classList.add("notice-text");
|
||||
if (IsBlackLabel(_lpCaption)) {
|
||||
msgtext.style.marginTop = "0";
|
||||
}
|
||||
msgcontent.appendChild(msgtext);
|
||||
} else {
|
||||
var msgtext = document.createElement("p");
|
||||
msgtext.innerText = "";
|
||||
msgtext.classList.add("notice-text");
|
||||
if (IsBlackLabel(_lpCaption)) {
|
||||
msgtext.style.marginTop = "0";
|
||||
}
|
||||
msgcontent.appendChild(msgtext);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (!IsBlackLabel(_lpText)) {
|
||||
var msgtext = document.createElement("p");
|
||||
@@ -330,7 +364,7 @@ MsgBoxObj.prototype._internalCallback = function(returnValue) {
|
||||
* @param {string} swTitle 标题
|
||||
* @param {MBFLAGS} uType 标志,使用 MBFLAGS 常量
|
||||
* @param {string} swColor 背景颜色文本。
|
||||
* @returns
|
||||
* @returns {Promise}
|
||||
*/
|
||||
function messageBoxAsync(swText, swTitle, uType, swColor, pfCallback) {
|
||||
if (typeof Promise === "undefined") {
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
max-height: 19px !important;
|
||||
position: relative;
|
||||
display: block;
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
.toggle-switch>input[type="checkbox"] {
|
||||
|
||||
@@ -29,6 +29,34 @@
|
||||
<script type="text/javascript" src="appinstaller/preinit.js"></script>
|
||||
<script type="text/javascript" src="appinstaller/items.js"></script>
|
||||
<script type="text/javascript" src="appinstaller/init.js"></script>
|
||||
<style>
|
||||
.markdown-style {
|
||||
font-weight: normal;
|
||||
font-size: 16px;
|
||||
-ms-user-select: element;
|
||||
}
|
||||
|
||||
.markdown-style h1 {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.markdown-style h2 {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
.markdown-style p {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.markdown-style ul {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.markdown-style li {
|
||||
font-size: 16px;
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="../subpage.css">
|
||||
<script type="text/javascript" src="preinit.js"></script>
|
||||
<script type="text/javascript" src="initsame.js"></script>
|
||||
<script type="text/javascript" src="../../libs/markdown.js"></script>
|
||||
<script>
|
||||
try {
|
||||
window.parent.setItemHighlight("about");
|
||||
@@ -53,6 +54,243 @@
|
||||
}
|
||||
document.getElementById("current-version").textContent = window.currver;
|
||||
</script>
|
||||
<p id="about-copyright"></p>
|
||||
<script>
|
||||
(function() {
|
||||
var storage = Bridge.External.Storage;
|
||||
var path = storage.path;
|
||||
var verinfo = JSON.parse(Bridge.External.getVersionInfoToJSON(exepath));
|
||||
var aboutCopyright = document.getElementById("about-copyright");
|
||||
aboutCopyright.textContent = verinfo.LegalCopyright;
|
||||
})();
|
||||
</script>
|
||||
<p data-res-fromfile="publicRes (133)"></p>
|
||||
<p>
|
||||
<a href="https://github.com/modernw/App-Installer-For-Windows-8.x-Reset" target="_blank" data-res-fromfile="publicRes (134)"></a>
|
||||
</p>
|
||||
<p>
|
||||
<a id="about-project-description" data-res-fromfile="publicRes(135)"></a>
|
||||
</p>
|
||||
<p>
|
||||
<a id="about-update-log" data-res-fromfile="publicRes(136)"></a>
|
||||
</p>
|
||||
<p>
|
||||
<a id="about-eula" data-res-fromfile="publicRes(137)"></a>
|
||||
</p>
|
||||
<p data-res-fromfile="publicRes (138)"></p>
|
||||
<ul>
|
||||
<li><a href="https://github.com/chausner/PriTools" target="_blank">chausner/PriTools</a></li>
|
||||
<li><a href="https://pugixml.org/" target="_blank">pugixml</a></li>
|
||||
<li><a href="https://rapidjson.org/" target="_blank">RapidJSON</a></li>
|
||||
<li><a href="https://github.com/winjs/winjs" target="_blank">WinJS</a></li>
|
||||
<li><a href="https://github.com/evilstreak/markdown-js" target="_blank">markdown.js</a></li>
|
||||
</ul>
|
||||
<script>
|
||||
(function() {
|
||||
var aboutUpdateLog = document.getElementById("about-update-log");
|
||||
var aboutEula = document.getElementById("about-eula");
|
||||
var aboutProjectDescription = document.getElementById("about-project-description");
|
||||
var eventutil = Windows.UI.Event.Util;
|
||||
var storage = Bridge.External.Storage;
|
||||
var path = storage.path;
|
||||
var strres = Bridge.External.StringResources;
|
||||
var jslist = [
|
||||
"js\\module.js",
|
||||
"js\\polyfill-ie.js",
|
||||
"js\\bridge.js",
|
||||
"js\\dpimodes.js"
|
||||
];
|
||||
var libroot = path.combine(path.root, "html");
|
||||
/**
|
||||
* 异步显示消息框,返回一个 Promise 对象。
|
||||
* @param {string | HTMLElement} swText 内容
|
||||
* @param {string} swTitle 标题
|
||||
* @param {MBFLAGS} uType 标志,使用 MBFLAGS 常量
|
||||
* @param {string} swColor 背景颜色文本。
|
||||
* @returns
|
||||
*/
|
||||
var msgbox = function() {};
|
||||
var MsgBox = function() {};
|
||||
if (typeof window.parent !== "undefined") {
|
||||
msgbox = window.parent.messageBoxAsync;
|
||||
MsgBox = window.parent.MsgBoxObj;
|
||||
} else {
|
||||
msgbox = messageBoxAsync;
|
||||
MsgBox = MsgBoxObj;
|
||||
}
|
||||
eventutil.addEvent(aboutUpdateLog, "click", function() {
|
||||
var content = document.createElement("div");
|
||||
var progressDisplay = document.createElement("div");
|
||||
var progress = document.createElement("progress");
|
||||
var retryBtn = document.createElement("button");
|
||||
retryBtn.textContent = getPublicRes(132);
|
||||
retryBtn.style.display = "none";
|
||||
retryBtn.style.margin = "10px 0";
|
||||
progress.classList.add("win-ring");
|
||||
progress.style.color = "white";
|
||||
var state = document.createElement("span");
|
||||
progress.style.marginRight = "5px";
|
||||
progressDisplay.appendChild(progress);
|
||||
progressDisplay.appendChild(state);
|
||||
progressDisplay.setAttribute("style", "display: flex; flex-direction: row;");
|
||||
content.appendChild(progressDisplay);
|
||||
content.appendChild(retryBtn);
|
||||
content.style.margin = "10px 0";
|
||||
content.style.maxHeight = "100%";
|
||||
content.style.width = "100%";
|
||||
progressDisplay.style.width = "100%";
|
||||
content.style.boxSizing = "border-box";
|
||||
progressDisplay.style.boxSizing = "border-box";
|
||||
content.classList.add("markdown-style");
|
||||
msgbox(content, getPublicRes(136));
|
||||
var fetchFunc = function() {
|
||||
retryBtn.style.display = "none";
|
||||
state.textContent = getPublicRes(139);
|
||||
progress.style.display = "";
|
||||
WinJS.xhr({
|
||||
url: "https://api.github.com/repos/modernw/App-Installer-For-Windows-8.x-Reset/releases/tags/" + currver,
|
||||
}).done(
|
||||
function(resp) {
|
||||
var json = JSON.parse(resp.responseText);
|
||||
var body = json.body;
|
||||
content.innerHTML = markdown.toHTML(body);
|
||||
content.style.height = "300px";
|
||||
content.style.maxHeight = "100%";
|
||||
},
|
||||
function(err) {
|
||||
progress.style.display = "none";
|
||||
retryBtn.style.display = "block";
|
||||
var msg = {
|
||||
message: ""
|
||||
};
|
||||
try {
|
||||
msg = JSON.parse(err.responseText);
|
||||
} catch (e) {
|
||||
msg = err.responseText;
|
||||
}
|
||||
state.textContent = getPublicRes(140) + (msg.message.length > 0 ? ": " + msg.message : "");
|
||||
}
|
||||
);
|
||||
};
|
||||
retryBtn.addEventListener("click", function() {
|
||||
fetchFunc();
|
||||
});
|
||||
fetchFunc();
|
||||
});
|
||||
eventutil.addEvent(aboutProjectDescription, "click", function() {
|
||||
function decodeBase64(base64) {
|
||||
// GitHub 的 content 有换行,必须清理
|
||||
base64 = base64.replace(/\s/g, "");
|
||||
return atob(base64);
|
||||
}
|
||||
var content = document.createElement("div");
|
||||
var progressDisplay = document.createElement("div");
|
||||
var progress = document.createElement("progress");
|
||||
var retryBtn = document.createElement("button");
|
||||
retryBtn.textContent = getPublicRes(132);
|
||||
retryBtn.style.display = "none";
|
||||
retryBtn.style.margin = "10px 0";
|
||||
progress.classList.add("win-ring");
|
||||
progress.style.color = "white";
|
||||
var state = document.createElement("span");
|
||||
progress.style.marginRight = "5px";
|
||||
progressDisplay.appendChild(progress);
|
||||
progressDisplay.appendChild(state);
|
||||
progressDisplay.setAttribute("style", "display: flex; flex-direction: row;");
|
||||
content.appendChild(progressDisplay);
|
||||
content.appendChild(retryBtn);
|
||||
content.style.margin = "10px 0";
|
||||
content.style.maxHeight = "100%";
|
||||
content.style.whiteSpace = "normal";
|
||||
content.style.width = "100%";
|
||||
progressDisplay.style.width = "100%";
|
||||
content.style.boxSizing = "border-box";
|
||||
content.classList.add("markdown-style");
|
||||
progressDisplay.style.boxSizing = "border-box";
|
||||
msgbox(content, getPublicRes(135));
|
||||
var fetchFunc = function() {
|
||||
retryBtn.style.display = "none";
|
||||
state.textContent = getPublicRes(141);
|
||||
progress.style.display = "";
|
||||
WinJS.xhr({
|
||||
url: "https://api.github.com/repos/modernw/App-Installer-For-Windows-8.x-Reset/readme",
|
||||
}).done(
|
||||
function(resp) {
|
||||
var json = JSON.parse(resp.responseText);
|
||||
var decoderesult = decodeBase64(json.content);
|
||||
content.innerHTML = decoderesult;
|
||||
},
|
||||
function(err) {
|
||||
progress.style.display = "none";
|
||||
retryBtn.style.display = "block";
|
||||
var msg = {
|
||||
message: ""
|
||||
};
|
||||
try {
|
||||
msg = JSON.parse(err.responseText);
|
||||
} catch (e) {
|
||||
msg = err.responseText;
|
||||
}
|
||||
state.textContent = getPublicRes(142) + (msg.message.length > 0 ? ": " + msg.message : "");
|
||||
}
|
||||
);
|
||||
};
|
||||
retryBtn.addEventListener("click", function() {
|
||||
fetchFunc();
|
||||
});
|
||||
fetchFunc();
|
||||
});
|
||||
eventutil.addEvent(aboutEula, "click", function() {
|
||||
var eulaFilePath = path.combine(path.root, "license");
|
||||
eulaFilePath = path.combine(eulaFilePath, strres.getString("license"))
|
||||
var content = document.createElement("iframe");
|
||||
content.onload = function() {
|
||||
try {
|
||||
var winjsurl = path.combine(libroot, "libs\\winjs\\1.0\\css\\ui-light.css");
|
||||
var style = document.createElement("link");
|
||||
style.rel = "stylesheet";
|
||||
style.href = winjsurl;
|
||||
content.contentWindow.document.head.insertBefore(style, content.contentWindow.document.head.firstChild);
|
||||
for (var i = 0; i < jslist.length; i++) {
|
||||
var jsfile = path.combine(libroot, jslist[i]);
|
||||
var script = document.createElement("script");
|
||||
script.src = jsfile;
|
||||
content.contentWindow.document.head.appendChild(script);
|
||||
}
|
||||
content.contentWindow.document.body.style.overflowY = "auto";
|
||||
content.contentWindow.Windows.UI.DPI.mode = 1;
|
||||
} catch (e) {}
|
||||
};
|
||||
content.src = eulaFilePath;
|
||||
content.style.margin = "10px 0";
|
||||
var text = document.createElement("div");
|
||||
text.style.width = "100%";
|
||||
text.style.height = "300px";
|
||||
text.style.overflowY = "hidden";
|
||||
content.style.width = "100%";
|
||||
content.style.height = "100%";
|
||||
content.style.maxHeight = "100%";
|
||||
text.appendChild(content);
|
||||
var dlg = new MsgBox();
|
||||
dlg.text = text;
|
||||
dlg.title = getPublicRes(143);
|
||||
dlg.show();
|
||||
setTimeout(function() {
|
||||
var element = dlg.getElement();
|
||||
var body = element.querySelector(".notice-body");
|
||||
var title = element.querySelector(".notice-title");
|
||||
var content = element.querySelector(".notice-text");
|
||||
var ctrls = element.querySelector(".notice-controls");
|
||||
element.classList.remove("win-ui-dark");
|
||||
element.classList.add("win-ui-light");
|
||||
title.style.color = "black";
|
||||
content.style.color = "black";
|
||||
body.style.backgroundColor = "white";
|
||||
body.style.color = "black";
|
||||
}, 0);
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
@@ -159,6 +159,28 @@
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
<div class="win-settings-section">
|
||||
<br>
|
||||
<label class="win-label" for="check-app-has-installed" id="check-app-has-installed-label" data-res-fromfile="publicRes (144)"></label>
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var label = document.getElementById("check-app-has-installed-label");
|
||||
var toggle = new Toggle();
|
||||
toggle.create();
|
||||
toggle.parent = label.parentNode;
|
||||
toggle.showlabel = true;
|
||||
var winjsres = Bridge.External.WinJsStringRes;
|
||||
toggle.setStatusText(winjsres.getString("ms-resource://Microsoft.WinJS.1.0/ui/on"), winjsres.getString("ms-resource://Microsoft.WinJS.1.0/ui/off"));
|
||||
toggle.inputId = "check-app-has-installed";
|
||||
var ini = Bridge.External.Config.GetConfig();
|
||||
toggle.addEventListener("change", function() {
|
||||
ini.set("Settings", "AppInstaller:CheckPackageIsIntalled", toggle.checked);
|
||||
});
|
||||
toggle.checked = parseBool(ini.getSection("Settings").getKey("AppInstaller:CheckPackageIsIntalled").value);
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
@@ -81,7 +81,8 @@
|
||||
}
|
||||
|
||||
#newversion-desc {
|
||||
white-space: pre-wrap;
|
||||
/*white-space: pre-wrap;*/
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
#newversion-desc img {
|
||||
@@ -313,6 +314,13 @@
|
||||
var newVersionDescShowOrHide = document.getElementById("newversion-desc-showall-hide");
|
||||
var checkUpdateLoading = document.getElementById("loading-amine");
|
||||
var stopProcess = false;
|
||||
var tbpFlags = {
|
||||
error: 4,
|
||||
indeterminate: 1,
|
||||
noProgress: 0,
|
||||
normal: 2,
|
||||
paused: 8
|
||||
};
|
||||
|
||||
function newVersionBlockSizeChanged() {
|
||||
if (stopProcess) return;
|
||||
@@ -426,20 +434,22 @@
|
||||
var path = storage.path;
|
||||
stopProcess = true;
|
||||
newVersionBlock.parentNode.style.height = "0px";
|
||||
checkUpdateText.textContent = getPublicRes(117);
|
||||
checkUpdateText.textContent = getPublicRes(118);
|
||||
progress.style.display = "";
|
||||
checkUpdateBlock.style.height = checkUpdateBlock.scrollHeight + "px";
|
||||
var anime = Windows.UI.Animation;
|
||||
var strutil = Bridge.External.String;
|
||||
var tbputil = Bridge.External;
|
||||
|
||||
function setError(error) {
|
||||
//console.error("download error", error);
|
||||
checkUpdateText.textContent = strutil.format(getPublicRes(119), error.reason);
|
||||
progress.style.display = "none";
|
||||
self.disabled = false;
|
||||
self.textContent = "重试";
|
||||
self.textContent = getPublicRes(132);
|
||||
window.parent.setDisabledForOperation(false);
|
||||
checkUpdateBlock.style.height = checkUpdateBlock.scrollHeight + "px";
|
||||
tbputil.tbState = tbpFlags.error;
|
||||
}
|
||||
|
||||
function setException(e) {
|
||||
@@ -447,6 +457,7 @@
|
||||
checkUpdateText.textContent = strutil.format(getPublicRes(119), e.message);
|
||||
window.parent.setDisabledForOperation(false);
|
||||
checkUpdateBlock.style.height = checkUpdateBlock.scrollHeight + "px";
|
||||
tbputil.tbState = tbpFlags.error;
|
||||
}
|
||||
|
||||
function setComplete(complete) {
|
||||
@@ -457,16 +468,18 @@
|
||||
var settingsapppath = path.combine(path.root, "settings.exe");
|
||||
window.parent.setDisabledForOperation(false);
|
||||
var process = Bridge.External.Process;
|
||||
process.kill(appinstallerpath, true, false);
|
||||
checkUpdateBlock.style.height = checkUpdateBlock.scrollHeight + "px";
|
||||
tbputil.tbState = tbpFlags.noProgress;
|
||||
process.kill(appinstallerpath, true, false);
|
||||
createProcess(cmdline, tempfile, wndDisplayMode.showNormal, false);
|
||||
process.kill(settingsapppath, true, false);
|
||||
//Bridge.External.closeWindow();
|
||||
}
|
||||
progress.value = 0;
|
||||
anime.loading(checkUpdateLoading, true);
|
||||
var tempdir = path.expand("%temp%");
|
||||
var tempfile = path.combine(tempdir, "InstallerSetup.exe");
|
||||
tbputil.tbProgress = 0;
|
||||
tbputil.tbState = tbpFlags.normal;
|
||||
downloadFile(downloadUrl, tempfile).done(
|
||||
function(complete) {
|
||||
anime.loading(checkUpdateLoading, false);
|
||||
@@ -482,6 +495,7 @@
|
||||
progress.value = prog.progress;
|
||||
checkUpdateText.textContent = strutil.format(getPublicRes(121), Math.floor(prog.progress), formatBytesSize(prog.received), formatBytesSize(prog.total));
|
||||
checkUpdateBlock.style.height = checkUpdateBlock.scrollHeight + "px";
|
||||
tbputil.tbProgress = prog.progress;
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
87
shared/license/license_cn.html
Normal file
87
shared/license/license_cn.html
Normal file
@@ -0,0 +1,87 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
|
||||
<title>最终用户许可协议</title>
|
||||
<style>
|
||||
body {
|
||||
/*font-family: "Microsoft YaHei", "Segoe UI", Arial, sans-serif;*/
|
||||
font-size: 9pt;
|
||||
/*color: #333333;
|
||||
background-color: #ffffff;*/
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 12.5pt;
|
||||
font-weight: bold;
|
||||
margin-bottom: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 10.75pt;
|
||||
font-weight: bold;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
ul,
|
||||
ol {
|
||||
margin: 5px 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #1a73e8;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #0b59d1;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>最终用户许可协议</h1>
|
||||
|
||||
<p>请在安装或使用本软件前仔细阅读本许可协议。</p>
|
||||
|
||||
<h2>一、版权声明</h2>
|
||||
<p>Copyright © 2025 Windows Modern. 本软件及其源码受版权法保护。</p>
|
||||
|
||||
<h2>二、许可范围</h2>
|
||||
<p>本软件遵循 MIT 许可协议。您可以在符合 MIT 许可条件下自由使用、复制、修改、分发本软件及其源码,包括商业用途。</p>
|
||||
|
||||
<h2>三、第三方组件</h2>
|
||||
<p>本软件包含以下第三方开源组件,使用这些组件受其原始许可证约束:</p>
|
||||
<ul>
|
||||
<li>PriTools (Apache License 2.0) - <a href="https://github.com/chausner/PriTools" target="_blank">https://github.com/chausner/PriTools</a></li>
|
||||
<li>pugixml (MIT License) - <a href="https://pugixml.org/" target="_blank">https://pugixml.org/</a></li>
|
||||
<li>RapidJSON (MIT License) - <a href="https://rapidjson.org/" target="_blank">https://rapidjson.org/</a></li>
|
||||
<li>WinJS (MIT License) - <a href="https://github.com/winjs/winjs" target="_blank">https://github.com/winjs/winjs</a></li>
|
||||
<li>markdown.js (MIT License) - <a href="https://github.com/evilstreak/markdown-js" target="_blank">https://github.com/evilstreak/markdown-js</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>四、免责声明</h2>
|
||||
<p>本软件按“原样”提供,不附带任何明示或暗示的担保,包括但不限于适销性、特定用途适用性和非侵权的保证。无论在何种情况下,作者或版权持有人均不对因使用本软件产生的任何直接、间接、偶然或特殊损害负责。</p>
|
||||
|
||||
<h2>五、接受条款</h2>
|
||||
<p>安装或使用本软件即表示您接受本许可协议。如果您不同意本协议,请不要安装或使用本软件。</p>
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
||||
91
shared/license/license_en.html
Normal file
91
shared/license/license_en.html
Normal file
@@ -0,0 +1,91 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>End User License Agreement</title>
|
||||
<style>
|
||||
body {
|
||||
/*font-family: "Segoe UI", "Microsoft YaHei", Arial, sans-serif;*/
|
||||
font-size: 9pt;
|
||||
/*color: #333333;
|
||||
background-color: #ffffff;*/
|
||||
-ms-overflow-style: -ms-autohiding-scrollbar;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 12.5pt;
|
||||
font-weight: bold;
|
||||
margin-bottom: 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 10.75pt;
|
||||
font-weight: bold;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
ul,
|
||||
ol {
|
||||
margin: 5px 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #1a73e8;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #0b59d1;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>End User License Agreement</h1>
|
||||
|
||||
<p>Please read this license agreement carefully before installing or using this software.</p>
|
||||
|
||||
<h2>1. Copyright</h2>
|
||||
<p>Copyright © 2025 Windows Modern. This software and its source code are protected by copyright law.</p>
|
||||
|
||||
<h2>2. License</h2>
|
||||
<p>This software is licensed under the MIT License. You are free to use, copy, modify, and distribute this software and its source code, including for commercial purposes, subject to the terms of the MIT License.</p>
|
||||
|
||||
<h2>3. Third-Party Components</h2>
|
||||
<p>This software includes the following third-party open source components, which are subject to their original licenses:</p>
|
||||
<ul>
|
||||
<li>PriTools (Apache License 2.0) - <a href="https://github.com/chausner/PriTools" target="_blank">https://github.com/chausner/PriTools</a></li>
|
||||
<li>pugixml (MIT License) - <a href="https://pugixml.org/" target="_blank">https://pugixml.org/</a></li>
|
||||
<li>RapidJSON (MIT License) - <a href="https://rapidjson.org/" target="_blank">https://rapidjson.org/</a></li>
|
||||
<li>WinJS (MIT License) - <a href="https://github.com/winjs/winjs" target="_blank">https://github.com/winjs/winjs</a></li>
|
||||
<li>markdown.js (MIT License) - <a href="https://github.com/evilstreak/markdown-js" target="_blank">https://github.com/evilstreak/markdown-js</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>4. Disclaimer</h2>
|
||||
<p>This software is provided "as is", without any express or implied warranties, including but not limited to warranties of merchantability, fitness for a particular purpose, and non-infringement. In no event shall the authors or copyright holders be
|
||||
liable for any damages arising from the use of this software, whether direct, indirect, incidental, or consequential.</p>
|
||||
|
||||
<h2>5. Acceptance</h2>
|
||||
<p>By installing or using this software, you agree to this license agreement. If you do not agree, do not install or use the software.</p>
|
||||
<br>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -113,7 +113,6 @@
|
||||
<lang name="zh-TW">關閉</lang>
|
||||
<lang name="zu-ZA">Cishile</lang>
|
||||
</resource>
|
||||
|
||||
<resource id="ms-resource://Microsoft.WinJS.1.0/ui/on">
|
||||
<lang name="zh-CN">开</lang>
|
||||
<lang name="en-US">On</lang>
|
||||
@@ -227,4 +226,8 @@
|
||||
<lang name="zh-TW">開啟</lang>
|
||||
<lang name="zu-ZA">Vuliwe</lang>
|
||||
</resource>
|
||||
<resource id="license">
|
||||
<lang name="zh-CN">license_cn.html</lang>
|
||||
<lang name="en-US">license_en.html</lang>
|
||||
</resource>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user