C ++-使用带有ShellExecute

时间:2019-03-22 14:56:49

标签: c++ shellexecute

我想在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);

谢谢!

1 个答案:

答案 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