Я очень начинающий программист в некотором смысле.
Фон:
В моей компании мы используем среду VMware для наших пользователей. Они запускают свой виртуальный рабочий стол, и ThinPrint предоставит новую установку принтера для сеанса этого пользователя. Эта установка принтера определяется VLAN, из которой пользователь входит в систему. Принтер устанавливается с любыми настройками по умолчанию, входящими в состав драйвера.
Проблема:
У нас есть специальный термопринтер Zebra для этикеток, с которым мы столкнулись с проблемой. В принтере используются этикетки определенного размера, которые необходимо определить в драйвере. В отличие от обычных принтеров, в которых используются встроенные формы принтера Windows, в этом принтере Zebra используются эти проприетарные формы, которые называются «запасами». Эти приклады встроены в драйвер Zebra. Я легко могу создать запас нужных размеров и сохранить его, но проблема заключается в том, что он находится в среде виртуальной машины. Мне нужно, чтобы мои нестандартные материалы были частью установки принтера для сеанса, в который входит пользователь. ThinPrint будет каждый раз устанавливать принтер только как новую установку и не будет включать в себя нестандартный запас.
Зачем мне нужна ваша помощь:
Я обнаружил ключ реестра, который соответствует создаваемому мной пользовательскому каталогу. Я могу ввести этот ключ реестра, и сток будет красиво отображаться даже без перезагрузки. Так что я мог легко создать командный файл, который вводит ключ во время входа в систему. Однако раздел реестра - это подраздел конкретного имени принтера. Это означает, что создаваемый мной REG-файл должен быть адаптирован к имени принтера во время сеанса этого пользователя, что, конечно же, будет отличаться для всех различных принтеров zebra, имеющихся в компании.
Вот пример файла REG:
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Print \ Printers \ CC_ZEBRA \ PrinterDriverData \ Papers] "StockNum" = dword: 00000001
[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Print \ Printers \ CC_ZEBRA \ PrinterDriverData \ Papers \ 0] «Данные» = шестнадцатеричный: 4f, 6e, 2d, 44,65,6d, 61,6e, 64,00, 00,00,00,00,00,00,00,00,00,00,00,00, \ 00,00,00,00,00,00,00,00,00,00,00,00,00 , 00,00,00,00,00,00,00,00,00,00,00,00, \ 00,00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,01,01,00,00,1e, 00,03,00, \ 00,00,00,00, fe, 00, fa, 02,00,00,00,00 , 00,00,00,00,00,00,00,00,00,00,00,00,00, \ 00,00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00, \ 00,00,00,00,00,00,00,00,00,00,00 , 00,00,00,00,00,00,00,00,00,00,00,00,00,00, \ 00,00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, \ 00,00,00,00,00,00,00,00,00,00 , 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, \ 00,00,00,00,00,00,00,00,00, 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, \ 00,00,00,00,00,00,00,00,00 , 00, ec, 00,00,00
Все в этом файле REG останется прежним, за исключением ключа CC_ZEBRA. Мне нужен способ проанализировать список установленных принтеров и заменить этот ключ именем установленного принтера. В качестве альтернативы я подумал о том, чтобы дать всем нашим принтерам zebra инкрементные имена (Zebra1, Zebra2, Zebra3 и т. Д.) И выполнить цикл до тех пор, пока он не найдет совпадение, а затем запустит адаптированный файл REG, который у меня есть для этого принтера.
Любая помощь или предложения будут оценены всем! Заранее благодарю!