У меня есть приложение, у которого есть записи, с которыми может быть связано несколько вложений, которые могут быть коллекцией файлов JPG, TIF, PDF или HTM (теоретически этот список произвольный, и это наиболее типичные типы) .
Одно из действий, которые мне нужно выполнить, - разрешить их печать в массовом порядке на конкретном принтере.
Для большинства типов файлов я могу эмулировать оболочку и выполнять те же действия, что и при перетаскивании файла и переносе его на принтер в проводнике, используя глагол «PrintTo» и ShellExecute (через ProcessStartInfo
) ; тем не менее, я некоторое время ломал голову, размышляя, почему это не работает для файлов HTM - вместо этого он всегда предлагает выбрать принтер для каждого файла, даже если для этого есть параметры реестра.
Это когда я вернулся к первым принципам и проверил, работает ли оболочка «правильно», когда я обнаружил, что она ведет себя так же (так, скажем, вы перетаскиваете любой старый файл HTML на принтер в проводник, он всегда запрашивает печать, по умолчанию принтер является вашим принтером по умолчанию, , даже если это не тот принтер, на который вы сбросили файл )
Теперь, похоже, это поведение было введено в IE7 (умышленно или нет, я не уверен); но есть ли способ заставить это работать так, как ожидалось?
РЕДАКТИРОВАТЬ: Это для внутреннего приложения, поэтому было бы допустимо исправить реестр , если это будет работать.