【问题标题】:Get local printer list to change printer IP and default printer获取本地打印机列表以更改打印机 IP 和默认打印机
【发布时间】:2011-08-24 02:34:13
【问题描述】:

如果没有管理员权限的用户,我如何才能找到运行程序的机器的所有本地打印机。我需要重新映射打印机 IP 并将打印机设置为默认值。我的想法是使用模拟来执行此操作,但我不知道在哪里可以找到打印机以及使用模拟是否是一个好的解决方案。

感谢您的帮助!

【问题讨论】:

  • 你能提供更多关于操作系统的信息吗?

标签: c# .net windows-7 printers


【解决方案1】:

我认为你不会有任何运气。模拟在这里不起作用,只会抛出异常。您可以通过模拟并尝试打开 Environment.Domain 来尝试此操作,它应该会给您一个例外。

您可以在不冒充的情况下尝试这样的事情:

ManagementScope mscope = new ManagementScope(@"\root\CIMV2", options);
mscope.Connect();
System.Management.ObjectQuery oQuery = new ObjectQuery("Select * from Win32_TCPIPPrinterPort");
System.Management.ManagementObjectSearcher searcher = new ManagementObjectSearcher(mscope, oQuery);
ManagementObjectCollection moCollection = searcher.Get();

foreach (ManagementObject mo in moCollection)
{
    string name = mo["Name"].ToString();

    if (name.Equals(this.portName))
    {
        System.Threading.Thread.Sleep(10000);
        mo["HostAddress"] = this.printerIP;
        mo.Put();
        Console.WriteLine("Adjusted Printer Port to new IP address " + this.printerIP);
        return true;
    }
}

【讨论】:

  • 不错。比你应该考虑检查这个答案吗?
  • 对不起,我是新手,不知道
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多