我想在C ++程序中使用ShellExecute强制在W7和W10上使用Windows Photo Viewer打开tiff图像。默认情况下,tiff图像是用我的计算机上的另一个查看器打开的。目标是拥有一个灵活的解决方案,无论打开tiff图像所使用的默认程序是什么,该解决方案都将起作用。
在cmd.exe中运行此命令可以满足我的要求:
rundll32 "%ProgramFiles%\Windows Photo Viewer\PhotoViewer.dll", ImageView_Fullscreen C:\Temp\myimage.tif
现在,如何在ShellExecute参数中转换?我尝试了以下操作,但是不起作用。不知道这是语法还是我没有向函数发送正确的参数。
ShellExecute(NULL, _T("open"), _T("rundll32 \"%ProgramFiles%\\Windows Photo Viewer\\PhotoViewer.dll\", ImageView_Fullscreen C:\\Temp\\myimage.tif"), NULL, NULL , SW_HIDE);
谢谢!
答案 0 :(得分:0)
这在Win 10上对我有效
ShellExecute(
NULL, //-- hwnd
"open", //-- lpOperation
"rundll32.exe", //-- lpFile
//-- lpParameters
"\"C:\\Program Files\\Windows Photo Viewer\\PhotoViewer.dll\", ImageView_Fullscreen C:\\temp\\P1000325.jpg",
NULL, //-- lpDirectory
SW_HIDE); //-- nShowCmd