foxygit / digitalskrivare_merge Log in
commits tags

/src/Remiss.Core/Printing/DefaultPrinter.cs · 920 B

raw
using Microsoft.Win32;

namespace Remiss.Core.Printing;

/// <summary>
/// Läser namnet på Windows standardskrivare. Används bara för audit-loggen –
/// själva utskriften låter SumatraPDF välja default via <c>-print-to-default</c>.
/// </summary>
public static class DefaultPrinter
{
    public static string? TryGetName()
    {
        try
        {
            using var key = Registry.CurrentUser.OpenSubKey(
                @"Software\Microsoft\Windows NT\CurrentVersion\Windows");

            if (key?.GetValue("Device") is string device && device.Length > 0)
            {
                // Formatet är "Skrivarnamn,winspool,Ne00:"
                var comma = device.IndexOf(',');
                return comma > 0 ? device[..comma] : device;
            }
        }
        catch
        {
            // ignore – audit får då "(systemets standardskrivare)"
        }

        return null;
    }
}