// Check Windows registry string uninstallKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"; using (Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(uninstallKey)) if (key != null) foreach (string subkeyName in key.GetSubKeyNames()) using (Microsoft.Win32.RegistryKey subkey = key.OpenSubKey(subkeyName)) if (subkey?.GetValue("DisplayName")?.ToString()?.Contains("UsbDk") == true) return true; return false; catch return false;
public void LogSuccess(string message) Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine($"[SUCCESS] DateTime.Now:HH:mm:ss - message"); Console.ResetColor();
return $false function Install-USBDK Write-Log "INFO" "Installing USBDK..." 2-download and install usbdk-1.0.22-x64.msi
private async Task<bool> DownloadInstallerAsync() try using (var httpClient = new HttpClient()) httpClient.Timeout = TimeSpan.FromMinutes(5); using (var response = await httpClient.GetAsync(USBDK_DOWNLOAD_URL, HttpCompletionOption.ResponseHeadersRead)) response.EnsureSuccessStatusCode(); using (var fileStream = new FileStream(_downloadPath, FileMode.Create, FileAccess.Write, FileShare.None)) await response.Content.CopyToAsync(fileStream);
# Check if already installed if ((-not $ForceReinstall) -and (Test-USBDKInstalled)) Write-Log "INFO" "USBDK is already installed" return $true catch return false
static async Task Main(string[] args) var installer = new USBDKInstallerFeature(); // Normal installation bool success = await installer.InstallAsync(); // Force reinstall // bool success = await installer.InstallAsync(forceReinstall: true); Console.WriteLine(success ? "Installation successful" : "Installation failed");
void LogInfo(string message); void LogError(string message); void LogWarning(string message); void LogSuccess(string message); using (var fileStream = new FileStream(_downloadPath
// Step 2: Check if already installed if (!forceReinstall && IsUSBDKInstalled()) _logger.LogInfo("USBDK is already installed"); return true;