я давно писал через оснастку wmi, но сейчас наверное не вспомню. полностью программно можно было юзеру указать любой принтер из списка и он его запоминал и печатал именно на него
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший