Каково точное действие контекстного меню «Печать» в Windows и как его параметризовать?

Каково точное действие контекстного меню «Печать» в Windows и как его параметризовать?

Контекстное меню, появляющееся после щелчка правой кнопкой мыши по файлу или группе файлов, часто содержит опцию «Печать».

Я хотел узнать точный эффект нажатия на кнопку. Пробовал на куче файлов pdf, похоже, они открываются в Adobe Reader, запускаются параметры печати (полагаю, с настройками по умолчанию) и закрываются. После печати остается только пустой интерфейс Adobe Reader. Это единственный эффект, то есть:

  1. Откройте файл (программой по умолчанию?)
  2. Начать печать
  3. Закрыть файл

Мне еще интереснее, есть ли способ параметризовать эффекты опции «Печать» контекстного меню?

Например,

  1. оставьте файл открытым после печати
  2. использовать определенную программу (отличную от программы по умолчанию, вызываемой левой кнопкой мыши)
  3. и т. д...

решение1

Команда "Печать" в контекстном меню, похоже, делает несколько вещей. Очевидно, только Microsoft может ответить вам во всех подробностях, но вот мой опыт:

  • Он открывает файл в предопределенном приложении по умолчанию и выполняет действие, эквивалентное нажатиюCTRL+P

  • Теперь это зависит от того, как работает приложение CTRL+P. Большинство приложений отображают диалоговое окно печати по умолчанию, как вы заметили Adobe Reader или также JPG-изображения и Windows Picture Viewer. Но некоторые приложения имеют быструю печать, сопоставленную с ярлыком CTRL+P, например MS Word или Excel. Эти приложения обходят диалоговое окно печати и просто печатают с настройками по умолчанию, используя следующий метод:

  • Получить компьютерпринтер по умолчанию из скриптапод"C:\Windows\System32\Printing_Admin_Scripts\en-US\prnmngr.vbs" 1)

  • Выполнить "Распечатать/d:DefaultPrinterFromPreviousScript PATH" команда, которая активируетСлужба диспетчера очереди печати Windows spoolsv.exe, который управляет очередью печати ПК.

1)Доказательство того, что этот скрипт используется системой: Получите права владельца на этот файл, переименуйте его и попробуйте распечатать, например, JPG из контекстного меню. Приложение по умолчанию открывается только для отображения фатальной внутренней ошибки. Не забудьте переименовать его обратно в то, что было!

К вашему другому вопросу. К сожалению, я не смог найти никакой информации об изменении обработчика контекстного меню "Печать". Ни в реестре, ни в настройках.

решение2

В дополнение к принятому ответу вы можете отредактировать команду контекстного меню printследующим образом:

Откройте редактор реестра (Win+R->Regedit), затем перейдите, например, к HKEY_CLASSES_ROOT\.txt. Посмотрите на правую панель, и вы увидите Defaultзначение txtfileили похожее.

Вернитесь на левую панель, чтобы найти txtfileключ ниже в корневой ветке классов (выделите дерево и начните вводить txt), он прокрутится вниз до HKEY_CLASSES_ROOT\txtfile.

Проверьте значение по умолчанию HKEY_CLASSES_ROOT\txtfile\shell\print\commandна правой панели.
У меня это %SystemRoot%\system32\NOTEPAD.EXE /p %1. Посмотрите на это /p.
Вы можете редактировать здесь все, что захотите.

Рассматривайте .txtввод ключа как точку, где расширение файла получает тип или имя. Затем действия определяются ниже для этого типа. Таким образом, более одного расширения файла могут указывать на одни и те же действия.

Я использовал .txtпример, потому что все его ключи проще понять. Возможно, .pdfбудет немного сложнее (я не использую Adobe Reader).

пд: не стесняйтесь редактировать мой плохой английский/сочинение.

Связанный контент