在 ShellExecute 函数 (C++) 中运行多个命令

Run more of one command in ShellExecute function (C++)

本文关键字:运行 命令 ShellExecute 函数 C++      更新时间:2023-10-16

我正在尝试运行以下行:

hRet = ShellExecute(HWND_DESKTOP,
                    L"open",
               (*)  L"C:\...\wmplayer.exe  C:\...\.mp4",       
                    NULL, 
                    NULL,
                    SW_SHOW);

但是文件(.mp4)无法打开,可能是因为我在一个参数中给出了两个路径。我还尝试运行以下内容:

(*)  L""C:\...\wmplayer.exe"  "C:\...\.mp4""

和:

(*)  L"C:\...\wmplayer.exe"  "C:\...\.mp4"

但无济于事,你能帮忙吗??谢谢。。。!

阅读文档,我会说调用应该是

hRet = ShellExecute(HWND_DESKTOP,
                    L"open",
                    L"C:\...\wmplayer.exe",
                    L"C:\...\.mp4",       
                    NULL,
                    SW_SHOW);

文档说:

lpParameters [in, optional] 类型: LPCTSTR 如果 lpFile 指定 可执行文件,此参数是指向以 null 结尾的指针 指定要传递给应用程序的参数的字符串。 此字符串的格式由要成为的谓词确定 调用。如果 lpFile 指定文档文件,则 lpParameters 应为 零。

因此,您可以直接传递.mp4文件作为lpFile参数并保留此NULL(但将使用默认播放器),或者您必须将播放器名称作为文件传递,将电影名称作为参数传递。