2009-06-01 1 views
0

У нас есть часть программного обеспечения, которое пытается распечатать .tif изображения с помощью объекта ProcessStartInfo. Он устанавливает для свойства Verb свойство «print» и свойство FileName для пути к изображению. Затем он устанавливает свойство UseShellExecute в значение true и выполняет метод Process.Start().ProcessStartInfo print verb не существует для .tif изображений

Однако ничего не происходит. Я создал небольшую тестовую программу, чтобы перечислить глаголы, связанные с изображениями .tif, и отображает только «Shell», но не «print».

Я не могу изменить эту часть программного обеспечения, так есть способ определить или зарегистрировать глагол «print» для типов изображений .tif, чтобы они могли печатать?

+1

«shell» - это родительский ключ для ключей глагола, поэтому я думаю, что ваша тестовая программа, вероятно, неверна. –

ответ

2

Прежде всего, глагол вы, вероятно, ищете, вероятно, printto

Вы можете также раскошелиться выполнить команду печати непосредственно с

"%SystemRoot%\System32\rundll32.exe" "%SystemRoot%\System32\shimgvw.dll",ImageView_PrintTo /pt "%1" "%2" "%3" "%4" 

Параметры объясняются в KB224961 как:

%1 File name 
%2 Printer name 
%3 Driver name 
%4 Port name 
/p Print 
pt Printto 
+0

Это не доступно. Свойство Verbs показывает только Shell как доступное для типов .tif. Кроме того, как я уже сказал, я никак не могу изменить этот код. – NYSystemsAnalyst

+0

@NYSA - Является ли глагол printto в системе, с которой вы столкнулись? Я думаю, вы обнаружите, что он отсутствует и его нужно создать. – overslacked

+0

ОК. Я использовал Инструменты -> Параметры папки -> Типы файлов, чтобы добавить тип файла TIF. Для типа файла в разделе «Дополнительно» я добавил действие «печать» и использовал команду, указанную выше. Однако, когда я пытаюсь выполнить печать через тестовое приложение или через контекстное меню правой кнопки мыши, я получаю сообщение об отказе доступа. Любые идеи, на что отказано? – NYSystemsAnalyst