No Windows XP, a única maneira que encontrei para abrir as janelas 2+ Picture e Fax Viewer é abrir uma imagem em uma janela, abrir a caixa de diálogo de impressão e, em seguida, abrir as seguintes. Abrir uma foto com uma janela já existente de Visualizador de imagens e fax, simplesmente substitui essa imagem do Windows pela nova.
Assim, para obter a funcionalidade desejada, até onde posso dizer, há dois caminhos a seguir:
1) Alter shimgvw.dll para pará-lo procurando se uma janela já está aberta, de modo que apenas abre outra (como acontece quando uma janela é bloqueada com a caixa de diálogo de impressão para cima).
2) Encontre uma maneira de script pedindo ao usuário o primeiro arquivo que deseja abrir, em seguida, abra a imagem e instrua o shimgvw.dll a carregar a caixa de diálogo de impressão dessa janela, perguntando sobre o segundo arquivo e repita.
Eu tentei decompilar o shimgvw.dll, mas não sou muito bom em assembler.
Também descobrimos que essa DLL pode ter uma interface COM ( link ), mas não tenho certeza do que posso invocar por isso.
Há também uma sintaxe curiosa de rundll32.exe %windir%\shimgvw.dll,ImageView_Fullscreen %1,ImageView_PrintTo /pt "%1" "%2"
ligeiramente alterada do link , mas isso não faz aparentemente abrir / fazer qualquer coisa, apesar do que eu acho que parece (Abre% 1, então invoca o diálogo de impressão a partir do contexto daquela janela)
Tags images rundll32.exe