簡體   English   中英

C#ManagementObjectSearcher對象容器為打印機返回null

[英]C# ManagementObjectSearcher object container returns null for printers

我有一個奇怪的問題,希望有人能幫助我。 2個月前部署了軟件,沒有任何問題。 現在我回到它,它為以下代碼返回一個無效的類錯誤。 執行所有操作后,它將返回計算機上安裝的所有打印機。

錯誤是searcher.Container = null。 過去是打印機對象列表。 從那以后沒有任何變化,該計算機是使用Visual Studio 2015的64位Windows 7。

public static ObservableCollection<PrinterStatusData> GetAvailablePrinterAndStatus()  
    {
        ObservableCollection<PrinterStatusData> printerStatus = new ObservableCollection<PrinterStatusData>();
        ManagementScope scope = new ManagementScope(@"\root\cimv2");
        scope.Connect();

        ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");

        foreach (ManagementBaseObject o in searcher.Get())
        {
            ManagementObject printer = (ManagementObject)o;
            if (printer != null)
            {
                string name = printer["Name"].ToString();
                bool available = !printer["WorkOffline"].ToString().ToLower().Equals("true");
                    printerStatus.Add(new PrinterStatusData(name, available));
            }
        }

        return printerStatus;
    }
 if (printer["Name"] != null)
                {
                    string name = printer["Name"].ToString();
                    bool available = !printer["WorkOffline"].ToString().ToLower().Equals("true");
                    printerStatus.Add(new PrinterStatusData(name, available));
                }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM