Добрый день!
Пытаюсь расшарить программно принтеры с использованием С#. Пробовал передавать скрипт prncnfg.vbs с аргументами . Пример скрипта с аргументами
prncnfg.vbs -t -p "Sony DPP-FP60" -h "Share" +shared -direct
и использовал SELECT * FROM Win32_Printer
, но не могу включить общий доступ более чем на 1 принтер. Кроме того, после включения шары на 1 принтер уже не сработает шара на другой. Задержки в выполнении потоков не приносят результатов. Вручную через командную строку всё работает корректно.
Проект заключается в следующем: получаем список принтеров
foreach (var printer in PrintersList.SelectedItems)
{
if (!string.IsNullOrEmpty(PrintersList.SelectedValue))
{
printersList.Add((string)printer);
}
}
Потом передаём его в метод. Принтеры обрабатываются отдельно в списке, но включение доступа не передается на 2 и более принтера. Имя для доступа получается задать для всех выбранных принтеров.
foreach (string printers in list)
{
string query = String.Format("SELECT * FROM Win32_Printer WHERE Name = '{0}'", printers);
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
ManagementObjectCollection collection = searcher.Get();
ManagementObject printer = collection.Cast<ManagementObject>().ElementAt(0);
printer.Properties["ShareName"].Value = shareName;
printer.Put();
Если включить значение,
printer.Properties["Shared"].Value = true;
то включается 1 принтер для расшаривания, а потом валится ошибка. Значение Shared, как я понимаю из примеров WMI не позволяет это сделать массово.
Подскажите, пожалуйста, можно это решить как-то или порекомендуйте библиотеку, которая умеет это делать
Какие существуют виды рекламных бордов и как выбрать подходящий?
Аренда удаленного сервера: цены, провайдеры и условия. Руководство для начинающих
Проект не коммерческий число пользователей около 100 может меньшеСильно не ругайте если что то не указал
Помогите пожалуйста как поставить свой логотип на phpbb форуме? Заранее спасибо!!!