Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Link the C runtime statically. Without the Visual C++ Redistributable the loader
# would stop the tool before its Windows App Runtime check can run.
[target.x86_64-pc-windows-msvc]
rustflags = ["-C", "target-feature=+crt-static"]

[target.aarch64-pc-windows-msvc]
rustflags = ["-C", "target-feature=+crt-static"]
89 changes: 89 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,14 @@ codegen-units = 1
# Native GUI callbacks cannot unwind across the Windows ABI boundary.
panic = "abort"
strip = "symbols"

# nyanpasu-windows-dependencies uses the published 0.100 support crates; build them
# from the vendored fork instead, so the executable carries one copy.
[patch.crates-io]
windows-collections = { path = "vendor/windows-rs/crates/libs/collections" }
windows-core = { path = "vendor/windows-rs/crates/libs/core" }
windows-future = { path = "vendor/windows-rs/crates/libs/future" }
windows-link = { path = "vendor/windows-rs/crates/libs/link" }
windows-registry = { path = "vendor/windows-rs/crates/libs/registry" }
windows-result = { path = "vendor/windows-rs/crates/libs/result" }
windows-strings = { path = "vendor/windows-rs/crates/libs/strings" }
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ App Runtime **2.5.1.0 or later**, matching the process architecture:
Download the official **2.5.1** installer for [x64](https://aka.ms/windowsappsdk/2.5/2.5.1/windowsappruntimeinstall-x64.exe)
or [arm64](https://aka.ms/windowsappsdk/2.5/2.5.1/windowsappruntimeinstall-arm64.exe).
See also the [Windows App SDK downloads](https://learn.microsoft.com/windows/apps/windows-app-sdk/downloads).
When the runtime is missing, the GUI offers to install it from the Microsoft Store
(where the Store is available) or opens these downloads.

Build and run in Git Bash:

Expand Down
3 changes: 2 additions & 1 deletion crates/enable-loopback/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,11 @@ test = false

[dependencies]
rust-i18n = "4"
nyanpasu-windows-dependencies = { git = "https://github.com/libnyanpasu/nyanpasu-windows-dependencies.git", rev = "df7fa8f4adbfe60f0d574560a228ccae3dd7b548" }
snafu = "0.8"
sys-locale = "0.3"
windows-reactor = { path = "../../vendor/windows-rs/crates/libs/reactor" }
windows = { path = "../../vendor/windows-rs/crates/libs/windows", features = ["appmodel", "libloaderapi", "debugapi", "winuser", "shellapi", "commctrl", "winerror", "winnt", "netfw", "sddl", "secext", "securitybaseapi", "shlwapi", "winbase", "heapapi", "winreg", "errhandlingapi", "processenv", "synchapi", "memoryapi", "handleapi", "processthreadsapi", "datetimeapi", "sysinfoapi"] }
windows = { path = "../../vendor/windows-rs/crates/libs/windows", features = ["libloaderapi", "debugapi", "winuser", "shellapi", "commctrl", "winerror", "winnt", "netfw", "sddl", "secext", "securitybaseapi", "shlwapi", "winbase", "heapapi", "winreg", "errhandlingapi", "processenv", "synchapi", "memoryapi", "handleapi", "processthreadsapi", "datetimeapi", "sysinfoapi"] }

[build-dependencies]
resvg = { version = "0.45", default-features = false }
Expand Down
1 change: 1 addition & 0 deletions crates/enable-loopback/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ fn main() {
<application xmlns="urn:schemas-microsoft-com:asm.v3"><windowsSettings>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
<activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>
<heapType xmlns="http://schemas.microsoft.com/SMI/2020/WindowsSettings">SegmentHeap</heapType>
</windowsSettings></application>
<dependency><dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
Expand Down
7 changes: 6 additions & 1 deletion crates/enable-loopback/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,14 @@
"runtime": {
"title": "Windows App Runtime required",
"missing": "This tool requires Windows App Runtime %{version} or later for %{architecture}.",
"install_from_store": "Install from Microsoft Store",
"download_installer": "Download installer",
"open_download_page": "Open download page",
"cancel": "Cancel"
"cancel": "Cancel",
"installing": "Installing Windows App Runtime from Microsoft Store. If you close this window, the installation continues in the background.",
"close": "Close",
"store_failed": "Microsoft Store could not install Windows App Runtime: %{detail}",
"store_incomplete": "Microsoft Store finished, but Windows App Runtime %{version} or later is still not installed."
},
"cli": {
"syntax": "Syntax:\nenableLoopback [--lang CODE] [-all | -none | -allow NAME... | -deny NAME... | ?]\nenableLoopback [manual] [-registry] [--lang CODE]\n\n-all: Exempt all AppContainers.\n-none: Clear all exemptions.\n-allow NAME: Add AppContainers whose names contain NAME.\n-deny NAME: Remove matching exemptions; * removes all.\nCommands ignore case; the leading - or / is optional.\nNAME may contain spaces. Use * to match all.\nLanguages: en, zh-cn, zh-tw, ja, ko, ru.\nmanual: Skip automatic refresh. -registry: Read the registry directly.",
Expand Down
7 changes: 6 additions & 1 deletion crates/enable-loopback/locales/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,14 @@
"runtime": {
"title": "Windows App Runtime が必要です",
"missing": "このツールには %{architecture} 用の Windows App Runtime %{version} 以降が必要です。",
"install_from_store": "Microsoft Store からインストール",
"download_installer": "インストーラーをダウンロード",
"open_download_page": "ダウンロードページを開く",
"cancel": "キャンセル"
"cancel": "キャンセル",
"installing": "Microsoft Store から Windows App Runtime をインストールしています。このウィンドウを閉じても、インストールはバックグラウンドで続行されます。",
"close": "閉じる",
"store_failed": "Microsoft Store で Windows App Runtime をインストールできませんでした: %{detail}",
"store_incomplete": "Microsoft Store の処理は完了しましたが、Windows App Runtime %{version} 以降はまだインストールされていません。"
},
"cli": {
"syntax": "構文:\nenableLoopback [--lang CODE] [-all | -none | -allow NAME... | -deny NAME... | ?]\nenableLoopback [manual] [-registry] [--lang CODE]\n\n-all:すべての AppContainer を除外。\n-none:除外リストを空にする。\n-allow NAME:名前に NAME を含む AppContainer を追加。\n-deny NAME:一致する除外を解除。* ですべて解除。\n大文字と小文字は区別しません。先頭の - または / は省略可能です。\nNAME には空白を含められます。* はすべてに一致します。\n言語:en、zh-cn、zh-tw、ja、ko、ru。\nmanual:自動更新しない。-registry:レジストリから直接読み取る。",
Expand Down
7 changes: 6 additions & 1 deletion crates/enable-loopback/locales/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,14 @@
"runtime": {
"title": "Windows App Runtime 필요",
"missing": "이 도구에는 %{architecture}용 Windows App Runtime %{version} 이상이 필요합니다.",
"install_from_store": "Microsoft Store에서 설치",
"download_installer": "설치 프로그램 다운로드",
"open_download_page": "다운로드 페이지 열기",
"cancel": "취소"
"cancel": "취소",
"installing": "Microsoft Store에서 Windows App Runtime을 설치하는 중입니다. 이 창을 닫아도 설치는 백그라운드에서 계속됩니다.",
"close": "닫기",
"store_failed": "Microsoft Store에서 Windows App Runtime을 설치하지 못했습니다: %{detail}",
"store_incomplete": "Microsoft Store 작업은 끝났지만 Windows App Runtime %{version} 이상이 아직 설치되지 않았습니다."
},
"cli": {
"syntax": "사용법:\nenableLoopback [--lang CODE] [-all | -none | -allow NAME... | -deny NAME... | ?]\nenableLoopback [manual] [-registry] [--lang CODE]\n\n-all: 모든 AppContainer의 예외를 허용합니다.\n-none: 예외 목록을 비웁니다.\n-allow NAME: 이름에 NAME이 포함된 AppContainer를 추가합니다.\n-deny NAME: 일치하는 예외를 해제합니다. *는 모두 해제합니다.\n명령은 대소문자를 구분하지 않으며 앞의 - 또는 /는 생략할 수 있습니다.\nNAME에 공백을 사용할 수 있습니다. *는 모두 일치합니다.\n언어: en, zh-cn, zh-tw, ja, ko, ru.\nmanual: 자동 새로 고침을 건너뜁니다. -registry: 레지스트리에서 직접 읽습니다.",
Expand Down
7 changes: 6 additions & 1 deletion crates/enable-loopback/locales/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,14 @@
"runtime": {
"title": "Требуется Windows App Runtime",
"missing": "Для этой утилиты требуется Windows App Runtime %{version} или новее для %{architecture}.",
"install_from_store": "Установить из Microsoft Store",
"download_installer": "Скачать установщик",
"open_download_page": "Открыть страницу загрузки",
"cancel": "Отмена"
"cancel": "Отмена",
"installing": "Windows App Runtime устанавливается из Microsoft Store. Если закрыть это окно, установка продолжится в фоновом режиме.",
"close": "Закрыть",
"store_failed": "Microsoft Store не удалось установить Windows App Runtime: %{detail}",
"store_incomplete": "Microsoft Store завершил работу, но Windows App Runtime %{version} или новее по-прежнему не установлен."
},
"cli": {
"syntax": "Синтаксис:\nenableLoopback [--lang CODE] [-all | -none | -allow NAME... | -deny NAME... | ?]\nenableLoopback [manual] [-registry] [--lang CODE]\n\n-all: Разрешить замыкание на себя всем AppContainer.\n-none: Очистить список исключений.\n-allow NAME: Добавить AppContainer, имена которых содержат NAME.\n-deny NAME: Удалить совпадающие исключения; * удаляет все.\nРегистр не учитывается. Начальный - или / необязателен.\nNAME может содержать пробелы. * соответствует всем именам.\nЯзыки: en, zh-cn, zh-tw, ja, ko, ru.\nmanual: Не обновлять автоматически. -registry: Читать прямо из реестра.",
Expand Down
7 changes: 6 additions & 1 deletion crates/enable-loopback/locales/zh-cn.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,14 @@
"runtime": {
"title": "需要 Windows App Runtime",
"missing": "本工具需要适用于 %{architecture} 的 Windows App Runtime %{version} 或更高版本。",
"install_from_store": "从 Microsoft Store 安装",
"download_installer": "下载安装程序",
"open_download_page": "打开下载页",
"cancel": "取消"
"cancel": "取消",
"installing": "正在从 Microsoft Store 安装 Windows App Runtime。关闭此窗口后,安装会在后台继续。",
"close": "关闭",
"store_failed": "Microsoft Store 无法安装 Windows App Runtime:%{detail}",
"store_incomplete": "Microsoft Store 已完成,但仍未安装 Windows App Runtime %{version} 或更高版本。"
},
"cli": {
"syntax": "语法:\nenableLoopback [--lang CODE] [-all | -none | -allow NAME... | -deny NAME... | ?]\nenableLoopback [manual] [-registry] [--lang CODE]\n\n-all:豁免所有 AppContainer。\n-none:清空豁免名单。\n-allow NAME:添加名称包含 NAME 的 AppContainer。\n-deny NAME:移除名称匹配的豁免;* 表示全部移除。\n命令不区分大小写,前导 - 或 / 可省略。\nNAME 可包含空格,用 * 匹配全部。\n语言:en、zh-cn、zh-tw、ja、ko、ru。\nmanual:不自动刷新。-registry:直接读取注册表。",
Expand Down
7 changes: 6 additions & 1 deletion crates/enable-loopback/locales/zh-tw.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,14 @@
"runtime": {
"title": "需要 Windows App Runtime",
"missing": "本工具需要適用於 %{architecture} 的 Windows App Runtime %{version} 或更新版本。",
"install_from_store": "從 Microsoft Store 安裝",
"download_installer": "下載安裝程式",
"open_download_page": "開啟下載頁面",
"cancel": "取消"
"cancel": "取消",
"installing": "正在從 Microsoft Store 安裝 Windows App Runtime。關閉此視窗後,安裝會在背景繼續。",
"close": "關閉",
"store_failed": "Microsoft Store 無法安裝 Windows App Runtime:%{detail}",
"store_incomplete": "Microsoft Store 已完成,但仍未安裝 Windows App Runtime %{version} 或更新版本。"
},
"cli": {
"syntax": "語法:\nenableLoopback [--lang CODE] [-all | -none | -allow NAME... | -deny NAME... | ?]\nenableLoopback [manual] [-registry] [--lang CODE]\n\n-all:豁免所有 AppContainer。\n-none:清空豁免清單。\n-allow NAME:新增名稱包含 NAME 的 AppContainer。\n-deny NAME:移除名稱相符的豁免;* 表示全部移除。\n命令不分大小寫,開頭的 - 或 / 可省略。\nNAME 可包含空格,以 * 比對全部。\n語言:en、zh-cn、zh-tw、ja、ko、ru。\nmanual:不自動重新整理。-registry:直接讀取登錄。",
Expand Down
Loading