読者です 読者をやめる 読者になる 読者になる

Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

C#でプリンタの接続ステータスを拾う

こんな感じで拾えますので、どぞ。System.ManagementのDLLに参照を追加してImportしておいて下さい。

public static bool IsPrinterOffLine(string printerName = "")
{
    ManagementScope scope = new ManagementScope("\\root\\cimv2");
    scope.Connect();

    // Select Printers from WMI Object Collections
    ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");
    foreach (ManagementObject printer in searcher.Get())
    {
       if(printer.GetPropertyValue("DeviceID").Equals(printerName)) {
           return (Boolean)printer.GetPropertyValue("WorkOffline");
       }
    }
    //プリンタが見つからないならtrue
    return true;
}