Initial release v1.01 — InstaSoft Office Tool
Office deployment wizard for InstaSoft customers: - Install Office 2019/2021/2024 (Standard, Professional Plus, Home & Business) - Auto-download ODT from Microsoft, generate config XML, run setup - Remove existing Office installations (C2R + MSI) - License troubleshooting via ospp.vbs (dstatus, unpkey) - Fluent Design UI (WPF .NET Framework 4.8, Win7+ compatible) - Hungarian interface, multi-language Office installation - Product key input with auto-activation support Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
81
Models/InstallConfig.cs
Normal file
81
Models/InstallConfig.cs
Normal file
@@ -0,0 +1,81 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace InstaSoftOfficeTool.Models
|
||||
{
|
||||
public class InstallConfig
|
||||
{
|
||||
public OfficeVersion Version { get; set; }
|
||||
public OfficeEdition Edition { get; set; }
|
||||
public string Architecture { get; set; } = "64";
|
||||
public string Language { get; set; } = "hu-hu";
|
||||
public string ProductKey { get; set; }
|
||||
public List<string> ExcludedApps { get; set; } = new List<string>();
|
||||
|
||||
public string GetVersionDisplayName()
|
||||
{
|
||||
switch (Version)
|
||||
{
|
||||
case OfficeVersion.Office2024: return "Office 2024";
|
||||
case OfficeVersion.Office2021: return "Office 2021";
|
||||
case OfficeVersion.Office2019: return "Office 2019";
|
||||
default: return "";
|
||||
}
|
||||
}
|
||||
|
||||
public string GetLanguageDisplayName()
|
||||
{
|
||||
return LanguageList.GetDisplayName(Language);
|
||||
}
|
||||
}
|
||||
|
||||
public static class LanguageList
|
||||
{
|
||||
public static readonly (string Code, string Name)[] Languages = new[]
|
||||
{
|
||||
("hu-hu", "Magyar"),
|
||||
("en-us", "English (US)"),
|
||||
("de-de", "Deutsch"),
|
||||
("fr-fr", "Fran\u00e7ais"),
|
||||
("it-it", "Italiano"),
|
||||
("es-es", "Espa\u00f1ol"),
|
||||
("pt-pt", "Portugu\u00eas"),
|
||||
("nl-nl", "Nederlands"),
|
||||
("pl-pl", "Polski"),
|
||||
("cs-cz", "\u010ce\u0161tina"),
|
||||
("sk-sk", "Sloven\u010dina"),
|
||||
("ro-ro", "Rom\u00e2n\u0103"),
|
||||
("hr-hr", "Hrvatski"),
|
||||
("sl-si", "Sloven\u0161\u010dina"),
|
||||
("sr-latn-rs", "Srpski"),
|
||||
("bg-bg", "\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438"),
|
||||
("uk-ua", "\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430"),
|
||||
("ru-ru", "\u0420\u0443\u0441\u0441\u043a\u0438\u0439"),
|
||||
("tr-tr", "T\u00fcrk\u00e7e"),
|
||||
("ja-jp", "\u65e5\u672c\u8a9e"),
|
||||
("zh-cn", "\u4e2d\u6587 (\u7b80\u4f53)"),
|
||||
("ko-kr", "\ud55c\uad6d\uc5b4"),
|
||||
};
|
||||
|
||||
public static string GetDisplayName(string code)
|
||||
{
|
||||
foreach (var lang in Languages)
|
||||
{
|
||||
if (lang.Code == code) return lang.Name;
|
||||
}
|
||||
return code;
|
||||
}
|
||||
}
|
||||
|
||||
public static class ExcludableApps
|
||||
{
|
||||
public static readonly (string Id, string DisplayName)[] Apps = new[]
|
||||
{
|
||||
("Access", "Access"),
|
||||
("Teams", "Teams"),
|
||||
("OneNote", "OneNote"),
|
||||
("Publisher", "Publisher"),
|
||||
("Outlook", "Outlook"),
|
||||
("Lync", "Skype for Business"),
|
||||
};
|
||||
}
|
||||
}
|
||||
11
Models/InstalledOffice.cs
Normal file
11
Models/InstalledOffice.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace InstaSoftOfficeTool.Models
|
||||
{
|
||||
public class InstalledOffice
|
||||
{
|
||||
public string DisplayName { get; set; }
|
||||
public string Version { get; set; }
|
||||
public string ProductCode { get; set; }
|
||||
public bool IsClickToRun { get; set; }
|
||||
public bool IsSelected { get; set; }
|
||||
}
|
||||
}
|
||||
107
Models/OfficeEdition.cs
Normal file
107
Models/OfficeEdition.cs
Normal file
@@ -0,0 +1,107 @@
|
||||
namespace InstaSoftOfficeTool.Models
|
||||
{
|
||||
public class OfficeEdition
|
||||
{
|
||||
public string DisplayName { get; set; }
|
||||
public string Description { get; set; }
|
||||
public string ProductId { get; set; }
|
||||
public string Channel { get; set; }
|
||||
public bool IsVolume { get; set; }
|
||||
|
||||
public static OfficeEdition[] GetEditions(OfficeVersion version)
|
||||
{
|
||||
switch (version)
|
||||
{
|
||||
case OfficeVersion.Office2024:
|
||||
return new[]
|
||||
{
|
||||
new OfficeEdition
|
||||
{
|
||||
DisplayName = "Standard",
|
||||
Description = "Alapvet\u0151 irodai alkalmaz\u00e1sok: Word, Excel, PowerPoint, Outlook, OneNote",
|
||||
ProductId = "Standard2024Volume",
|
||||
Channel = "PerpetualVL2024",
|
||||
IsVolume = true
|
||||
},
|
||||
new OfficeEdition
|
||||
{
|
||||
DisplayName = "Professional Plus",
|
||||
Description = "Teljes csomag: Word, Excel, PowerPoint, Outlook, Access, Publisher, OneNote",
|
||||
ProductId = "ProPlus2024Volume",
|
||||
Channel = "PerpetualVL2024",
|
||||
IsVolume = true
|
||||
},
|
||||
new OfficeEdition
|
||||
{
|
||||
DisplayName = "Otthoni \u00e9s kisv\u00e1llalati verzi\u00f3",
|
||||
Description = "Word, Excel, PowerPoint, Outlook, OneNote \u2014 v\u00e1llalkoz\u00e1sokban is haszn\u00e1lhat\u00f3",
|
||||
ProductId = "HomeBusiness2024Retail",
|
||||
Channel = "Current",
|
||||
IsVolume = false
|
||||
}
|
||||
};
|
||||
|
||||
case OfficeVersion.Office2021:
|
||||
return new[]
|
||||
{
|
||||
new OfficeEdition
|
||||
{
|
||||
DisplayName = "Standard",
|
||||
Description = "Alapvet\u0151 irodai alkalmaz\u00e1sok: Word, Excel, PowerPoint, Outlook, OneNote",
|
||||
ProductId = "Standard2021Volume",
|
||||
Channel = "PerpetualVL2021",
|
||||
IsVolume = true
|
||||
},
|
||||
new OfficeEdition
|
||||
{
|
||||
DisplayName = "Professional Plus",
|
||||
Description = "Teljes csomag: Word, Excel, PowerPoint, Outlook, Access, Publisher, OneNote",
|
||||
ProductId = "ProPlus2021Volume",
|
||||
Channel = "PerpetualVL2021",
|
||||
IsVolume = true
|
||||
},
|
||||
new OfficeEdition
|
||||
{
|
||||
DisplayName = "Otthoni \u00e9s kisv\u00e1llalati verzi\u00f3",
|
||||
Description = "Word, Excel, PowerPoint, Outlook, OneNote \u2014 v\u00e1llalkoz\u00e1sokban is haszn\u00e1lhat\u00f3",
|
||||
ProductId = "HomeBusiness2021Retail",
|
||||
Channel = "Current",
|
||||
IsVolume = false
|
||||
}
|
||||
};
|
||||
|
||||
case OfficeVersion.Office2019:
|
||||
return new[]
|
||||
{
|
||||
new OfficeEdition
|
||||
{
|
||||
DisplayName = "Standard",
|
||||
Description = "Alapvet\u0151 irodai alkalmaz\u00e1sok: Word, Excel, PowerPoint, Outlook, OneNote",
|
||||
ProductId = "Standard2019Volume",
|
||||
Channel = "PerpetualVL2019",
|
||||
IsVolume = true
|
||||
},
|
||||
new OfficeEdition
|
||||
{
|
||||
DisplayName = "Professional Plus",
|
||||
Description = "Teljes csomag: Word, Excel, PowerPoint, Outlook, Access, Publisher, OneNote, Skype for Business",
|
||||
ProductId = "ProPlus2019Volume",
|
||||
Channel = "PerpetualVL2019",
|
||||
IsVolume = true
|
||||
},
|
||||
new OfficeEdition
|
||||
{
|
||||
DisplayName = "Otthoni \u00e9s kisv\u00e1llalati verzi\u00f3",
|
||||
Description = "Word, Excel, PowerPoint, Outlook, OneNote \u2014 v\u00e1llalkoz\u00e1sokban is haszn\u00e1lhat\u00f3",
|
||||
ProductId = "HomeBusiness2019Retail",
|
||||
Channel = "Current",
|
||||
IsVolume = false
|
||||
}
|
||||
};
|
||||
|
||||
default:
|
||||
return new OfficeEdition[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
9
Models/OfficeVersion.cs
Normal file
9
Models/OfficeVersion.cs
Normal file
@@ -0,0 +1,9 @@
|
||||
namespace InstaSoftOfficeTool.Models
|
||||
{
|
||||
public enum OfficeVersion
|
||||
{
|
||||
Office2024,
|
||||
Office2021,
|
||||
Office2019
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user