2

次のコードを書きましたが、リモート プリンターの名前を取得できませんでした。誰か助けてもらえますか?

var searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM 
                                             Win32_Printer");

var results = searcher.Get();

IList<ManagementBaseObject> printers = new List<ManagementBaseObject>();
`enter code here`
foreach (var printer in results) `enter code here`{
    if ((bool)printer["Network"]) `enter code here`{`enter code here`
        printers.Add(printer);`enter code here`
    }
}
4

2 に答える 2

1

以下のようにコードを更新する必要があると思います。

private void btnGetPrinters_Click(object sender, EventArgs e)
{
    // Use the ObjectQuery to get the list of configured printers
    var oquery = new System.Management.ObjectQuery("SELECT * FROM Win32_Printer");

    var mosearcher = new System.Management.ManagementObjectSearcher(oquery);

    System.Management.ManagementObjectCollection moc = mosearcher.Get();

    foreach (ManagementObject mo in moc)
    {
        System.Management.PropertyDataCollection pdc = mo.Properties;

        foreach (System.Management.PropertyData pd in pdc)
        {
            if ((bool)mo["Network"])
            {
                cmbPrinters.Items.Add(mo[pd.Name]);
            }
        }
    }
}

WMI、C#、および VB.NET を使用してネットワークにインストールされているプリンターのリストを取得するからコピーしました

于 2012-11-01T08:59:37.227 に答える