#c# #.net #windows-7 #printers
#c# #.net #windows-7 #принтеры
Вопрос:
Как я могу найти все локальные принтеры компьютера, на котором запущена программа, с пользователем, у которого нет прав администратора. Мне нужно переназначить IP-адрес принтера и установить принтер по умолчанию. Моя идея состоит в том, чтобы использовать олицетворение для этого, но я не знаю, где найти принтер и является ли это хорошим решением для использования олицетворения.
Спасибо за любую помощь!
Комментарии:
1. Можете ли вы предоставить более подробную информацию об операционной системе?
Ответ №1:
Я не думаю, что вам повезет с этим. Олицетворение здесь не сработает и просто выдаст исключение. Вы можете попробовать это, создав олицетворение и попытавшись открыть Environment.Домен должен выдать вам исключение.
Вы можете попробовать что-то подобное без олицетворения:
ManagementScope mscope = new ManagementScope(@"rootCIMV2", 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;
}
}
Комментарии:
1. Неплохо. Чем вам следует воспользоваться, чтобы проверить этот ответ?
2. Извините, я новичок и не знал, что