mirror of
https://github.com/modernw/App-Installer-For-Windows-8.x-Reset.git
synced 2026-04-16 05:39:07 +10:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
319d13c2b1 | ||
|
|
4d10da5630 | ||
|
|
621c6fcfd3 | ||
|
|
4cf0a0a55d | ||
|
|
470cbedde1 | ||
|
|
4668f09dac | ||
|
|
a40ff21fe6 | ||
|
|
052042132f | ||
|
|
5518101cfc |
6
.gitignore
vendored
6
.gitignore
vendored
@@ -240,3 +240,9 @@ ModelManifest.xml
|
||||
|
||||
# FAKE - F# Make
|
||||
.fake/
|
||||
|
||||
# Generated Setup
|
||||
[Gg]enerated/
|
||||
|
||||
# Setup Build Files
|
||||
[Oo]thers/
|
||||
Binary file not shown.
@@ -1623,6 +1623,8 @@ public ref class MainHtmlWnd: public System::Windows::Forms::Form, public IScrip
|
||||
{
|
||||
if (!(g_wcmdflags & (DWORD)CMDPARAM::SILENT))
|
||||
{
|
||||
auto launch_when_ready = (bool)InvokeCallScriptFunction ("getLaunchWhenReady");
|
||||
if (!launch_when_ready) return;
|
||||
std::vector <std::wnstring> appids;
|
||||
for (auto &it : g_pkginfo)
|
||||
for (auto &it_s : it.applications)
|
||||
|
||||
@@ -191,12 +191,13 @@ int main (int argc, char *argv [])
|
||||
{
|
||||
setlocale (LC_ALL, "");
|
||||
std::wcout.imbue (std::locale ("", LC_CTYPE));
|
||||
CoInitializeEx (nullptr, COINIT_MULTITHREADED);
|
||||
std::wcout << L"Please enter the file path: " << std::endl;
|
||||
std::wcout << L"\\> ";
|
||||
std::wstring pkgPathStr = L"E:\\Profiles\\Bruce\\Desktop\\Discourse.appx";
|
||||
pkgPathStr = L"F:\\BaiduNetdiskDownload\\Collection4\\Microsoft.BingFinance_2015.709.2014.2069_neutral_~_8wekyb3d8bbwe\\FinanceApp_3.0.4.336_x86.appx";
|
||||
//pkgPathStr = L"F:\\BaiduNetdiskDownload\\Collection4\\Microsoft.BingFinance_2015.709.2014.2069_neutral_~_8wekyb3d8bbwe\\FinanceApp_3.0.4.336_x86.appx";
|
||||
//pkgPathStr = L"F:\\BaiduNetdiskDownload\\Collection4\\Microsoft.BingFinance_2015.709.2014.2069_neutral_~_8wekyb3d8bbwe.appxbundle";
|
||||
//pkgPathStr = L"";
|
||||
pkgPathStr = L"E:\\Profiles\\Bruce\\Desktop\\н¨Îļþ¼Ð\\Microsoft.MSIXPackagingTool_2023.1212.538.0_neutral_~_8wekyb3d8bbwe.Msixbundle";
|
||||
if (pkgPathStr.empty ()) std::getline (std::wcin, pkgPathStr);
|
||||
pkgPathStr.erase (
|
||||
std::remove (pkgPathStr.begin (), pkgPathStr.end (), L'\"'),
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -6542,7 +6542,7 @@ g_HandleSystemReboot();
|
||||
</SessionVar>
|
||||
<SessionVar>
|
||||
<Name>%ProductVer%</Name>
|
||||
<Value>0.2.2.0</Value>
|
||||
<Value>0.2.2.1</Value>
|
||||
<Type>1</Type>
|
||||
</SessionVar>
|
||||
<SessionVar>
|
||||
|
||||
@@ -368,7 +368,14 @@ class package_reader
|
||||
{
|
||||
#ifdef _PRI_READER_CLI_HEADER_
|
||||
pribundlereader.destroy ();
|
||||
for (auto &it : prifilestreams) if (it != nullptr) DestroyAppxFileStream (it);
|
||||
for (auto &it : prifilestreams)
|
||||
{
|
||||
if (it != nullptr)
|
||||
{
|
||||
DestroyAppxFileStream (it);
|
||||
it = nullptr;
|
||||
}
|
||||
}
|
||||
prifilestreams.clear ();
|
||||
switch (this->package_type ())
|
||||
{
|
||||
@@ -383,6 +390,7 @@ class package_reader
|
||||
case PKGTYPE_BUNDLE: {
|
||||
HANDLE hls = nullptr, hss = nullptr;
|
||||
destruct rel1 ([&hls, &hss] () {
|
||||
if (hls == hss) hss = nullptr;
|
||||
if (hls) DestroyAppxFileStream (hls);
|
||||
if (hss) DestroyAppxFileStream (hss);
|
||||
});
|
||||
@@ -423,6 +431,9 @@ class package_reader
|
||||
}
|
||||
} break;
|
||||
}
|
||||
std::sort (prifilestreams.begin (), prifilestreams.end ());
|
||||
auto last = std::unique (prifilestreams.begin (), prifilestreams.end ());
|
||||
prifilestreams.erase (last, prifilestreams.end ());
|
||||
try
|
||||
{
|
||||
std::vector <std::wstring> resnames;
|
||||
@@ -598,6 +609,7 @@ class package_reader
|
||||
case PKGTYPE_BUNDLE: {
|
||||
HANDLE pkg = nullptr, pic = nullptr;
|
||||
destruct relp ([&pic, &pkg] () {
|
||||
if (pic == pkg) pkg = nullptr; // 虽然来说这个代码永远无法达到,但是保险起见
|
||||
if (pic) DestroyAppxFileStream (pic);
|
||||
if (pkg) DestroyAppxFileStream (pkg);
|
||||
pkg = nullptr;
|
||||
@@ -616,12 +628,14 @@ class package_reader
|
||||
if (lpstr) free (lpstr);
|
||||
HANDLE pkg1 = nullptr, pic1 = nullptr;
|
||||
destruct relp1 ([&pic1, &pkg1] () {
|
||||
if (pic1 == pkg1) pkg1 = nullptr; // 虽然来说这个代码永远无法达到,但是保险起见
|
||||
if (pic1) DestroyAppxFileStream (pic1);
|
||||
if (pkg1) DestroyAppxFileStream (pkg1);
|
||||
pkg1 = nullptr;
|
||||
pic1 = nullptr;
|
||||
});
|
||||
pkg1 = GetAppxBundleApplicationPackageFile (hReader);
|
||||
if (pkg1 == pkg) pkg = nullptr;
|
||||
if (pkg1)
|
||||
{
|
||||
pic1 = GetFileFromPayloadPackage (pkg1, logo ().c_str ());
|
||||
@@ -782,6 +796,7 @@ class package_reader
|
||||
case PKGTYPE_BUNDLE: {
|
||||
HANDLE pkg = nullptr, pic = nullptr;
|
||||
destruct relp ([&pic, &pkg] () {
|
||||
if (pic == pkg) pkg = nullptr; // 虽然来说这个代码永远无法达到,但是保险起见
|
||||
if (pic) DestroyAppxFileStream (pic);
|
||||
if (pkg) DestroyAppxFileStream (pkg);
|
||||
pkg = nullptr;
|
||||
|
||||
@@ -495,7 +495,8 @@
|
||||
if (!controls) return false;
|
||||
var checkbox = controls.querySelector(".checkbox input");
|
||||
if (!checkbox) return false;
|
||||
return checkbox.checked == true;
|
||||
if (checkbox.disabled === true) return false;
|
||||
return checkbox.checked === true || checkbox.checked + "" === "true";
|
||||
}
|
||||
|
||||
function noticeLoadSelectPage() {
|
||||
|
||||
@@ -12,6 +12,13 @@
|
||||
flex-wrap: nowrap;
|
||||
align-content: center;
|
||||
justify-content: center;
|
||||
display: -ms-flexbox;
|
||||
-ms-flex-direction: column;
|
||||
-ms-flex-wrap: nowrap;
|
||||
-ms-flex-line-pack: center;
|
||||
/* align-content: center */
|
||||
-ms-flex-pack: center;
|
||||
/* justify-content: center */
|
||||
transition: all 0.15s linear;
|
||||
opacity: 0;
|
||||
z-index: 100;
|
||||
@@ -29,6 +36,9 @@
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-wrap: nowrap;
|
||||
display: -ms-flexbox;
|
||||
-ms-flex-direction: column;
|
||||
-ms-flex-wrap: nowrap;
|
||||
min-height: 0 !important;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
@@ -67,6 +77,15 @@
|
||||
align-content: center;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
display: -ms-flexbox;
|
||||
-ms-flex-direction: row;
|
||||
-ms-flex-wrap: nowrap;
|
||||
-ms-flex-line-pack: center;
|
||||
/* align-content: center(几乎无效,保留即可) */
|
||||
-ms-flex-pack: end;
|
||||
/* justify-content: flex-end */
|
||||
-ms-flex-align: center;
|
||||
/* align-items: center */
|
||||
margin-top: 10px;
|
||||
/*gap: 20px;*/
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
</ul>
|
||||
</nav>
|
||||
</aside>
|
||||
<iframe class="main right"></iframe>
|
||||
<iframe class="main right" defer loading="lazy" async></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
@@ -101,6 +101,13 @@
|
||||
flex-wrap: wrap;
|
||||
align-content: flex-start;
|
||||
justify-content: flex-start;
|
||||
display: -ms-flexbox;
|
||||
-ms-flex-direction: row;
|
||||
-ms-flex-wrap: wrap;
|
||||
-ms-flex-line-pack: start;
|
||||
/* align-content: flex-start */
|
||||
-ms-flex-pack: start;
|
||||
/* justify-content: flex-start */
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: calc(100% - 120px);
|
||||
|
||||
@@ -50,6 +50,15 @@
|
||||
align-content: flex-start;
|
||||
justify-content: flex-start;
|
||||
align-items: flex-start;
|
||||
display: -ms-flexbox;
|
||||
-ms-flex-direction: column;
|
||||
-ms-flex-wrap: wrap;
|
||||
-ms-flex-line-pack: start;
|
||||
/* align-content */
|
||||
-ms-flex-pack: start;
|
||||
/* justify-content */
|
||||
-ms-flex-align: start;
|
||||
/* align-items */
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
left: 0px;
|
||||
@@ -137,6 +146,13 @@
|
||||
flex-wrap: nowrap;
|
||||
align-content: flex-end;
|
||||
justify-content: flex-start;
|
||||
display: -ms-flexbox;
|
||||
-ms-flex-direction: column;
|
||||
-ms-flex-wrap: nowrap;
|
||||
-ms-flex-line-pack: end;
|
||||
/* align-content: flex-end */
|
||||
-ms-flex-pack: start;
|
||||
/* justify-content: flex-start */
|
||||
pointer-events: none;
|
||||
}
|
||||
</style>
|
||||
@@ -265,22 +281,22 @@
|
||||
</div>
|
||||
<div class="win-settings-section" id="item-custom-theme">
|
||||
<br>
|
||||
<label data-res-fromfile="publicRes (154)"></label><br>
|
||||
<label data-res-fromfile="publicRes (154)"></label><span>: </span><span id="custom-color-mode-display"></span><br>
|
||||
<script>
|
||||
(function() {
|
||||
var sect = document.getElementById("item-custom-theme");
|
||||
var toggle = new Toggle();
|
||||
toggle.create();
|
||||
toggle.parent = sect;
|
||||
toggle.setColor("#202020");
|
||||
toggle.showlabel = true;
|
||||
toggle.setStatusText(getPublicRes(155), getPublicRes(156));
|
||||
toggle.addEventListener("change", function() {
|
||||
Theme.setCustomColor(toggle.checked ? Theme.ColorType.dark : Theme.ColorType.light);
|
||||
var toggleForColorMode = new Toggle();
|
||||
toggleForColorMode.create();
|
||||
toggleForColorMode.parent = sect;
|
||||
toggleForColorMode.setColor("#202020");
|
||||
toggleForColorMode.showlabel = true;
|
||||
toggleForColorMode.setStatusText(getPublicRes(155), getPublicRes(156));
|
||||
toggleForColorMode.addEventListener("change", function() {
|
||||
Theme.setCustomColor(toggleForColorMode.checked ? Theme.ColorType.dark : Theme.ColorType.light);
|
||||
refreshCustomPreview();
|
||||
});
|
||||
OnLoad.add(function() {
|
||||
toggle.checked = Theme.customColor === Theme.ColorType.dark;
|
||||
toggleForColorMode.checked = Theme.customColor === Theme.ColorType.dark;
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
@@ -313,7 +329,15 @@
|
||||
iframe.contentWindow.Theme.currentColor = color;
|
||||
iframe.contentWindow.Theme.currentTheme = id;
|
||||
};*/
|
||||
iframe.src = previewHtml + "?color=" + color + "&id=" + id;
|
||||
setTimeout(function(iframenode, iframesrc) {
|
||||
iframenode.src = iframesrc;
|
||||
}, 0, iframe, previewHtml + "?color=" + color + "&id=" + id);
|
||||
// iframe.src = previewHtml + "?color=" + color + "&id=" + id;
|
||||
try {
|
||||
iframe.defer = true;
|
||||
iframe.loading = "lazy";
|
||||
iframe.async = true;
|
||||
} catch (e) {}
|
||||
item.appendChild(iframe);
|
||||
var colorstr = "light";
|
||||
if (color === Theme.ColorType.dark) colorstr = "dark";
|
||||
@@ -451,7 +475,7 @@
|
||||
<br>
|
||||
<h3 data-res-fromfile="publicRes (174)"></h3>
|
||||
<label data-res-fromfile="publicRes (175)"></label><br>
|
||||
<iframe src="../../preview.html" id="theme-custom-preview"></iframe>
|
||||
<iframe src="../../preview.html" id="theme-custom-preview" defer loading="lazy" async></iframe>
|
||||
<br><br>
|
||||
<button id="jump-editpage" data-res-fromfile="publicRes (176)"></button>
|
||||
<script>
|
||||
@@ -465,6 +489,17 @@
|
||||
var customThemePath = path.combine(path.root, "html\\theme\\{colormode}\\custom\\custom.css").replace("{colormode}", customcolorstr);
|
||||
var iframe = document.getElementById("theme-custom-preview");
|
||||
iframe.setAttribute("src", "../../preview.html?id=custom&color=" + customcolor);
|
||||
var customColorModeDisplay = document.getElementById("custom-color-mode-display");
|
||||
if (customColorModeDisplay) {
|
||||
switch (customcolor) {
|
||||
case Theme.ColorType.dark:
|
||||
customColorModeDisplay.textContent = getPublicRes(155);
|
||||
break;
|
||||
case Theme.ColorType.light:
|
||||
customColorModeDisplay.textContent = getPublicRes(156);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
OnLoad.add(function() {
|
||||
setTimeout(refreshCustomPreview, 100);
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
</ul>
|
||||
</nav>
|
||||
</aside>
|
||||
<iframe class="main right"></iframe>
|
||||
<iframe class="main right" defer loading="lazy" async></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
@@ -480,15 +480,39 @@
|
||||
var tempfile = path.combine(tempdir, "InstallerSetup.exe");
|
||||
tbputil.tbProgress = 0;
|
||||
tbputil.tbState = tbpFlags.normal;
|
||||
var proxyDownloadUrl = "https://githubproxy.cc/" + downloadUrl;
|
||||
downloadFile(downloadUrl, tempfile).done(
|
||||
function(complete) {
|
||||
anime.loading(checkUpdateLoading, false);
|
||||
if (complete.status == "ok") setComplete(complete);
|
||||
else setError(complete);
|
||||
else {
|
||||
anime.loading(checkUpdateLoading, true);
|
||||
downloadFile(proxyDownloadUrl, tempfile).done(
|
||||
function(comp) {
|
||||
anime.loading(checkUpdateLoading, false);
|
||||
if (complete.status == "ok") setComplete(comp);
|
||||
else setError(comp);
|
||||
},
|
||||
function(error) {
|
||||
setError(error);
|
||||
}
|
||||
);
|
||||
}
|
||||
},
|
||||
function(error) {
|
||||
anime.loading(checkUpdateLoading, false);
|
||||
setError(error);
|
||||
anime.loading(checkUpdateLoading, true);
|
||||
downloadFile(proxyDownloadUrl, tempfile).done(
|
||||
function(comp) {
|
||||
anime.loading(checkUpdateLoading, false);
|
||||
if (complete.status == "ok") setComplete(comp);
|
||||
else setError(comp);
|
||||
},
|
||||
function(err) {
|
||||
anime.loading(checkUpdateLoading, false);
|
||||
setError(err);
|
||||
}
|
||||
);
|
||||
},
|
||||
function(prog) {
|
||||
//console.log("download progress", prog);
|
||||
|
||||
@@ -1 +1 @@
|
||||
0.2.2.0
|
||||
0.2.2.1
|
||||
5
版本改变说明.txt
Normal file
5
版本改变说明.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
此文本仅是提醒我。
|
||||
版本改变说明:
|
||||
更改 shared\version 中的版本
|
||||
更改 others\buildsetup.suf 中的版本
|
||||
提交发行时新的版本。
|
||||
Reference in New Issue
Block a user