Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取本地打印机列表以更改打印机IP和默认打印机_C#_.net_Windows 7_Printers - Fatal编程技术网

C# 获取本地打印机列表以更改打印机IP和默认打印机

C# 获取本地打印机列表以更改打印机IP和默认打印机,c#,.net,windows-7,printers,C#,.net,Windows 7,Printers,我如何才能找到该程序运行时用户没有管理员权限的机器的所有本地打印机。我需要重新映射打印机IP并将打印机设置为默认。我的想法是使用模拟来实现这一点,但我不知道在哪里可以找到打印机,也不知道使用模拟是否是一个好的解决方案 谢谢你的帮助 我认为你在这件事上不会有任何运气。模拟在这里不起作用,只是抛出一个异常。您可以通过进行模拟来尝试此操作,并尝试打开环境域。它应该会给您一个异常 您可以在不进行模拟的情况下尝试以下操作: ManagementScope mscope = new ManagementSc

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


谢谢你的帮助

我认为你在这件事上不会有任何运气。模拟在这里不起作用,只是抛出一个异常。您可以通过进行模拟来尝试此操作,并尝试打开环境域。它应该会给您一个异常

您可以在不进行模拟的情况下尝试以下操作:

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;
    }
}

你能提供更多关于操作系统的信息吗?很好。你应该考虑检查这个答案吗?对不起,我是新来的,不知道。