发布网友 发布时间:2023-09-24 11:53
共1个回答
热心网友 时间:2024-08-24 07:47
右键菜单的“打印”选项是根据不同文件类型(后缀名)调用不同的命令来实现的。
以 jpg/jpeg 文件为例,其注册表路径为
HKEY_CLASSES_ROOT\jpegfile\shell\printto\command如图所示:
也就是会调用 shimgvw.dll(这是 Windows 自带的图片浏览器的DLL) 下 ImageView_PrintTo 这个方法。
你可以先判断图片文件的后缀名,再从注册表响应的 XXXfile\shell\printto 里先读出来这个项的值,在 Process.Start() 传参进去。
但是这是完全没有必要的,为什么非要调用 Windows 图片浏览器的打印功能?
C# 本身有完善的打印类,在 System.Drawing.Printing.PrintDocument 命名空间下。