v1.10 — Activation with key dialog, auto-refresh, Access restriction, fixes
- Product key dialog: Fluent overlay with 5-field input + paste support
- Activate button on each license card asks for key first (/inpkey + /act)
- Auto-refresh lists after removal/activation on all pages
- Access checkbox disabled for Standard and Home & Business editions
- MSI uninstall: only accept {GUID} product codes (fix msiexec help popup)
- Window height properly resets when Details expander is collapsed
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -161,5 +161,25 @@ namespace InstaSoftOfficeTool.Services
|
||||
|
||||
return string.Join("\n", results);
|
||||
}
|
||||
|
||||
public async Task<string> InstallKeyAsync(string productKey)
|
||||
{
|
||||
if (string.IsNullOrEmpty(OsppPath))
|
||||
return "Az ospp.vbs nem tal\u00e1lhat\u00f3.";
|
||||
|
||||
var runner = new ProcessRunner();
|
||||
return await runner.RunAndCaptureAsync("cscript",
|
||||
"//Nologo \"" + OsppPath + "\" /inpkey:" + productKey);
|
||||
}
|
||||
|
||||
public async Task<string> ActivateAsync()
|
||||
{
|
||||
if (string.IsNullOrEmpty(OsppPath))
|
||||
return "Az ospp.vbs nem tal\u00e1lhat\u00f3.";
|
||||
|
||||
var runner = new ProcessRunner();
|
||||
return await runner.RunAndCaptureAsync("cscript",
|
||||
"//Nologo \"" + OsppPath + "\" /act");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text.RegularExpressions;
|
||||
using InstaSoftOfficeTool.Models;
|
||||
using Microsoft.Win32;
|
||||
|
||||
@@ -92,11 +93,14 @@ namespace InstaSoftOfficeTool.Services
|
||||
!displayName.Contains("Microsoft Office"))
|
||||
continue;
|
||||
|
||||
// Only accept {GUID} product codes for MSI uninstall
|
||||
bool isGuid = Regex.IsMatch(subKeyName, @"^\{[0-9A-Fa-f\-]+\}$");
|
||||
|
||||
results.Add(new InstalledOffice
|
||||
{
|
||||
DisplayName = displayName,
|
||||
Version = version,
|
||||
ProductCode = subKeyName,
|
||||
ProductCode = isGuid ? subKeyName : null,
|
||||
IsClickToRun = false,
|
||||
IsSelected = true
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user