我怎样才能找到程序运行的机器的所有本地打印机,而这个用户没有管理员权限。我需要重新映射打印机IP并将打印机设置为默认打印机。我的想法是使用模拟来做这件事,但我不知道哪里可以找到打印机,也不知道使用模拟是不是一个好的解决方案。
谢谢你的帮助!
发布于 2011-05-12 21:41:04
我认为你在这方面不会有任何运气。模拟在这里不起作用,只是抛出一个异常。你可以通过模拟来尝试这一点,然后尝试打开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;
}
}https://stackoverflow.com/questions/5978205
复制相似问题