# 變更紀錄

NSudo 8.2

  • 添加當前用戶 (提權) 模式支持 (由 xspeed1989 建議)
  • 修復在 Windows 服務上下文使用 NSudo 遇到的阻礙性問題 (感謝 xspeed1989)
  • 改善數處實現
  • 修復在 NSudo 不支持的語言設置下界面顯示中文的問題 (感謝 rlesch)(#56)
  • 升級 Mile.Cpp 到最新版本
    • 從 Mile.Project 升級到 Mile.Project.VisualStudio 最新版本
    • 將 Mile.Windows.TrustedLibraryLoader 與 Mile.Platform.Windows 升級到 Mile.Library 最新版本
    • 升級 VC-LTL 到最新版本
  • 升級 Windows Template Library (WTL) 到 10.0.10320
  • 移除 ARM32 支持
    • 理由: https://mourinaruto.github.io/2021/05/17/Drop-ARM32-support-on-the-Windows-platform/
  • 改善數處文檔相關的實現
    • 改善項目網站體驗 (由 青春永不落幕 貢獻)
    • 改善碼雲體驗
    • 使用 GitHub Actions 部署項目網站
  • Add German Language. (由 Steve 貢獻)
  • 移除一些試驗性實現, 包括 NSudo Sweeper
  • 添加日誌支持

NSudo 8.0 Update 1 (8.0.1)

  • 更新意大利語翻譯 (由 garf02 貢獻)
  • 使用 NuGet 包版本 VC-LTL 替代獨立版 VC-LTL (感謝 mingkuang)
  • 創建 NSudo Sweeper 項目 (實驗性)
  • 使用 Windows Template Library (WTL) 構建界面
  • 改善項目網站實現 (由 青春永不落幕 貢獻)
  • 整理整個項目
  • 添加 Mile、Mile.Project、MINT 子項目使 NSudo 實現更加模塊化
  • 改善 AppVeyor 和 GitHub Action 連續集成的支持 (感謝 mingkuang)
  • 添加一鍵編譯腳本
  • 升級 VC-LTL 到 4.1.1-Beta7
  • 修復在 Windows 10 Build 21277 下崩潰的問題 (感謝 jgtoy)
  • NSudo .NET 互操作庫採用 .NET 5.0 編譯

NSudo 6.2.1812.31

  • 添加法語翻譯 (由 Thomas Dubreuil 貢獻)
  • 使用 JSON for Modern C++ 替代 RapidJSON 以符合 C++17 規範
  • 改善使用者介面體驗 (感謝 Lenny)
  • 修復上下文選單錯誤 (感謝 Thomas Dubreuil 和 龍魂)
  • 修復命令列解析器錯誤 (感謝 wzzw)
  • 添加繁體中文翻譯 (由 羅宇凡 貢獻)

NSudo 6.1.1811.18

  • 把 NSudoC 與 NSudoG 合併入 NSudo
  • 為 ARM 和 ARM64 的 Release 二進位檔案編譯配置添加 VC-LTL 支援, 並移除 VC-LTL 4.0 之前版本的支援 (大力感謝 mingkuang)
  • 添加以下新的命令列選項
    • CurrentDirectory (由 testtest322 建議)
    • Help
    • H
    • Priority (由 testtest322 建議)
    • ShowWindowMode (由 testtest322 建議)
    • UseCurrentConsole
    • Version
    • Wait (由 testtest322、wzzw 和 Domagoj Smolčić 建議)
  • 移除一些未文件化的命令列使用方式
  • 改進數個實現
    • 重構命令列解析器
    • 引入新式建立處理序前端
    • 使用 ATL 實現主視窗
    • 修復上下文選單 Bug (感謝 Thomas Dubreuil)
  • 更新授權的著作權所有者
  • 移除文件中的捐贈連結

NSudo 6.0.1804.5

NSudo 6.0.1802.2 v2

  • 修復點選執行按鈕只彈出命令提示字元的問題。 (感謝 AeonX)

NSudo 6.0.1802.2

  • 修復多個 Bug 和改善多個實現
  • 增加兩個獨立的可執行檔案用於不同情況
    • NSudoC.exe
      • 純命令列版本, 子系統設置為「控制台」
      • 在控制台下執行良好, 但是在非控制台處理序調用會出現黑色控制台視窗
      • 為了保證最佳體驗, NSudoC 不支援上下文選單
    • NSudoG.exe
      • 純命令列版本, 子系統設置為「Windows」
      • 可以靜默執行, 沒有黑色控制台視窗
  • NSudo 將通過 M2MessageDialog 而不是 TaskDialog 顯示資訊
    • 理由
      • 因為可以使用縱向滾動條, NSudo 可以在出錯時提供更加詳細的內容
      • 你可以複製對話方塊里的內容
      • 支援 Windows 講述人, 於是可以使用 CapsLock+H 讓講述人讀取對話方塊內容
      • 比 TaskDialog 的字型更大
    • M2MessageDialog 特性
      • 在 Windows 10 Build 10240 或之後版本完全支援 Per-Monitor DPI Aware
      • 完全支援 Windows 朗讀程式
      • 你可以使用縱向滾動條並且可以複製裡面的內容
      • 比 TaskDialog 的字型更大
      • 你可以按 Enter 鍵關閉對話方塊
    • 如果你想在你的項目使用 M2MessageDialog, 請從此處下載以下檔案: https://github.com/M2Team/NSudo/tree/master/NSudoSDK (opens new window)
      • M2DPIScaling.cpp
      • M2DPIScaling.h
      • M2MessageDialog.cpp
      • M2MessageDialog.h
      • M2MessageDialogResource.h
      • M2MessageDialogResource.rc
  • 移除繁體中文和日語的翻譯, 因為翻譯內容已經過時而且我不懂怎麼用
  • 升級 JSON for Modern C++ 到 3.0.1
  • 右鍵選單
    • 增加多語言描述
    • 為所有項目添加「開啓全部特權」選項
  • 更新命令列幫助和文件

NSudo 6.0.1801.19

  • 修復 NSudoDuplicateSessionToken 函數定義 Bug (感謝 mingkuang)
  • 修復在圖形介面下無法啓用全部特權的 Bug (感謝 abbodi1406)
  • 修復沒有 VC-LTL 時 x86 和 x86-64(AMD64)的 Release 編譯配置未採用靜態編譯的 Bug

NSudo 5.3.1801.11

  • 修復獲取 System 令牌函數的一個潛在 Bug (感謝 mingkuang)
  • 對 x86 和 x86-64(AMD64)的 Release 編譯配置提供 VC-LTL 庫支援 (感謝 mingkuang)
    • PS: 把 NSudo 和 VC-LTL 一起使用可以減小 NSudo 二進位檔案的體積
  • 整理文件

NSudo 5.2 (5.2.1709.8 - 5.2.1710.26)

  • 整理程式碼, 修復若干 Bugs
  • 更新文件, 增加英文自述
  • 添加對 ARM 和 ARM64 平台的支援 (感謝 fcharlie)
  • 優化命令列解析
  • 添加右鍵選單支援
    • 使用 /Install 或 -Install 參數添加右鍵選單 (命令列參數大小寫不敏感)
    • 使用 /Uninstall 或 -Uninstall 參數移除右鍵選單 (命令列參數大小寫不敏感)

NSudo 5.1 (5.0.1708.9 - 5.1.1708.19)

  • 修復批次檔案調用 NSudo 後批次變量不生效的問題 (感謝 羋員外)
  • 令 NSudo 在帶有命令列的狀態下也能自動請求管理員權限 (感謝 鳶一雨音)
  • 更換新圖示, 順便解決在 Windows Vista 之前版本系統上不顯示 NSudo 圖示的問題 (PS: NSudo 最低要求依舊是 Windows Vista)
  • 改進命令列解析 (感謝 鳶一雨音)
  • 更新原始程式碼授權的著作權 (對說辭進行了優化)和更新感謝名單 (新增人士)

NSudo 5.0 (4.4.1705.28 - 5.0.1707.31)

  • 使用新的獲取會話 ID 方法解決在 Server 系統的遠程桌面會話上使用 NSudo 執行應用可能無 法顯示介面的問題 (感謝 sebus)
  • 更新文件和授權協議以符合實際情況
  • 移除 VC-LTL (由 fcharlie 建議), 理由如下:
    • 雖然二進位檔案大小增加 80KB, 但原始程式碼大小縮小 57.6MB
    • 原始程式碼大小縮小後, NSudo 的雲編譯速度大幅提升
    • 可以少屏蔽大量編譯警告
  • 使用 NSudoSDK 項目代替 M2-SDK 項目
  • 改進版本定義頭檔案
  • 編譯器啓用 SDL 檢查、調整編譯輸出目錄和更新 CI 編譯配置檔案
  • 調整並優化程式碼(感謝 fcharlie 的建議)
  • .gitignore 檔案更新(由 fcharlie 實現)
  • 完全使用 MSDN 文件化 API 實現 NSudoAPI.h 以方便人們調用
  • 與 Nagisa 項目共用 m2base.h
  • 整理屏蔽的警告, 該版本 NSudo 屏蔽了以下警告實現 /W4 /WX 編譯
    • C4505 未引用的本地函數已移除(等級 4)
  • NSudo 快捷列表檔案格式從 ini 遷移到 json 並更新列表內容
  • 處理序建立時添加環境塊以改善兼容性
  • 把 Windows XP 控件支援聲明和 Per-Monitor DPI Aware V1 支援移入清單檔案
  • 在清單檔案添加兼容性 GUID 定義和 Per-Monitor DPI Aware V2 支援
  • 修復當未在瀏覽視窗選擇檔案的情況下命令列文本框出現""的問題

NSudo 4.4.1705.19

  • 適配最新版 M2-SDK
  • 適配最新版 VC-LTL
  • 修改編譯選項
  • 使用 git 子模組機制 (由 myfreeer 實現)
  • 配置 AppVeyor (由 myfreeer 提供靈感)
  • 開始使用 AppVeyor 自動編譯
  • 更新 M2-SDK 和 VC-LTL 子模組
  • 命令列解析從 main 函數拆分
  • 修復升級 VC-LTL 後出現的編譯警告 (有空會 pull fix 到 VC-LTL)
  • 版本號重新由自己而不是 CI 編譯服務控制
  • 整理解決方案佈局

NSudo 4.3.1703.25

  • 32 位版本取消對 SSE 和 SSE2 指令集的依賴 (為了保證完美的兼容性)
  • 移除 NTIShell, NSudo.AppContainer, MiniFM 子項目
  • NSudoSDK 完全被 M2-SDK 和 M2.NSudo.h 替代
  • 關於介面佈局調整
  • 子系統設置調整為 Windows 子系統 (為了不再彈出黑框)
  • 優化程式碼, 減少全局變量
  • System 令牌副本建立函數移除會話 ID 參數 (因為現實情況只能使用當前會話 ID)
  • 使用舊版應用調用方式 (即使用 cmd, 解決無法調用帶參數應用的問題)
  • 優化在 UI 自動化工具 (例如講述人等讀屏軟件)上的使用體驗
  • 「執行」按鈕被設為默認按鈕以提升使用體驗
  • 優化多語言資源以減小體積
  • 修復 UI 標題欄沒有圖示的問題
  • 為 UI 增加最小化按鈕
  • 修複數個庫函數返回值 Bug
  • 修複數個命令列解析 Bug
  • 修復 UI 圖示的 DPI 縮放問題
  • 開始使用 Visual Studio 2017 編譯
  • 移除 NSudo-GUI 項目
  • 程式碼不再包含 M2-SDK 和 VC-LTL 的內容, 需要單獨從 github 克隆

NSudo 4.2

  • 引入新 NSudoSDK API 並且對已有 NSudoSDK API 進行改善
  • 優化程式碼, 以減少 Windows API 調用次數
  • 修復不帶任何參數情況下可能的奔潰問題
  • 修復控制台部分不能在非管理員權限顯示命令列幫助的問題
  • 基於 ShellExecute 自建調用宿主, 以去除對 cmd.exe 的依賴
  • 引入 NTIShell (相當於 NSudo 1.0)重製版, 作為 NSudoSDK 的一個示例
  • 更改 MiniFM 圖示

NSudo 4.1

  • 修復命令列使用-U:D 導致程序奔潰的問題
  • 更正命令列的 NSudoC 殘餘描述 (感謝 NotePad)
  • 支援檔案拖拽 (感謝 NotePad)

NSudo 4.0

  • 重寫程式碼, 提供 NSudoSDK, 使程式碼容易使用在其他項目上
  • 命令列下新增"/"前綴參數支援,例如: NSudo /U:T /P:E cmd (感謝 th1r5bvn23)
  • 支援默認參數, 即以 TrustedInstaller 令牌且開啓全部特權執行 (感謝 老九)
  • 在默認快捷命令列表加入 host 編輯
  • 增加 NSudo 和 MiniFM 的 Per-Monitor DPI Aware 支援
  • 採用 VC-LTL 大幅度減小程序體積 (感謝 mingkuang)
  • 更改圖示 (感謝 20011010wo)
  • 精簡並優化主介面 (感謝 kCaRhC 卡殼, さくら)
  • 使用 TaskDialog 替代 MessageBox
  • 對關於介面進行調整, 並在關於介面加入命令列幫助
  • 修復彈出檔案不存在的問題
  • 修復命令列解析的一個潛在 Bug
  • 緩解 NSudo 圖形介面的空格問題 (瀏覽功能自動給命令列加引號)
  • 消除在編譯時的警告(/Wall 和/WX 兩個參數同時使用)

NSudo 2016.1

  • 修復 TrustedInstaller 下執行程序介面不顯示問題 (感謝 abbodi1406)
  • 修復命令列解析的漏洞和 UI 錯誤 (感謝 imadlatch)
  • 整理程式碼, 提升可讀性
  • 當前目錄設為 NSudo 所在目錄 (未來會更加靈活)
  • ShortCut 實現無限項目
  • 新增簡易檔案管理器小工具 (感謝 20011010wo)

NSudo 2016

  • 支援多語言 (程序內含簡中, 繁中, 英文, 日文)
  • 命令列處理重寫
  • 實現程式碼全部重構; 效率更高

NSudo 3.2 Fix1

  • 優化程序邏輯; 減少無用程式碼
  • 命令列版和圖形版二合一

NSudo 3.2

  • 修復無法使用帶有空格的路徑的問題
  • NSudo 和 NSudoC 單檔案化
  • 增加 NSudo.bat 方便新手準確調用與電腦架構相符的 NSudo 版本
  • NSudoSDK 增加靜態庫 (用 NSudo SDK 開發的工具可以實現單檔案)
  • 編譯平台採用 Visual Studio 2015 + Windows 10 SDK

NSudo 3.1 Debug

  • 修復 UI 的 ComboBox 不能輸入太長文字的問題
  • 修復某些情況下不能使用的問題 (由於開發機 Windows10 的 Bug 而導致誤認為那種方式可 行)
  • 增加真正的令牌降權 (除了 cmd 會誤顯示管理員外; 其他的會將其看作普通用戶)
  • 增加命令列版本
  • 增加常用列表自定義功能

NSudo 3.0 R2

  • 修復不能打開其他被系統關聯檔案的 Bug
  • SDK 的頭檔案改進: 增加#pragma comment(lib,"NSudoAPI.lib")

NSudo 3.0

  • 支援外部應用調用 (很抱歉讓一些人等太久)
  • 增加了常用調用列表 (暫時不支援自定義; 未來 3.1 會加入)
  • 加入了降權功能 (當然, 是完美降權到 UAC 未提權前。當然原理不是用獲取 explorer 令牌 和建立計劃任務)
  • 支援對權限令牌的自定義
  • 介面的完全重構 (相對於 2.x 來說)
  • 程式碼優化 (相對於 NSudo 3.0 M1 來說)
  • 加入 NSudo SDK
  • 原生 64 位版本
  • 實現了調用外部程序無視 WOW64 重定向的方法 (NSudoCreateProcess)
  • WinPE 支援 (雖然沒起多大作用)

NSudo 2.1

  • 實現自動開啓所有權限 Token
  • 對 cmd 的調用使用絕對路徑, 估計可以避免一些不必要的 Bug
  • 優化原始程式碼

NSudo 2.0

  • 程式碼全部使用 C++ Win32 SDK 重寫 (程序從 692KB 縮小到 92KB)
  • 提供獲取權限的選項
  • 提供命令列參數模式
  • 更換了圖示

NSudo 1.2

  • 未公開發佈 (估計還是在修復 SessionID 問題)

NSudo 1.1

  • 修復 SessionID 問題
  • 32 位和 64 位版本合體 (根據架構確定執行那個架構的命令提示字元, 採用 SysNative 目錄 (64 位 Vista 開始有的重定向)調用 64 位 cmd)

NTIShell 1.0

  • 根據 raymai97 的超級命令提示字元製作的第一個版本