c++ ShellExecuteA,但我不知道扩展名

s71maibg  于 2023-01-10  发布在  Shell
关注(0)|答案(1)|浏览(119)
std::string str1 = "C:\\Users\\user\\Desktop\\Notes";
ShellExecuteA(NULL, "open", str1.c_str(), NULL, NULL, SW_SHOWNORMAL);

密码不值钱。
我在一个DJ程序中有一个.mp3。在其中一个标签中,它保存了相关视频的文件名。所有视频都是.mpeg
使用DJ软件的API,我可以抓取标签。我知道视频文件在哪里(都在一个文件夹中)。我可以用ShellExecuteA()打开视频,因为虽然标签可能不包含完整的filename+extension,但我知道扩展名。
现在的问题是-我想开始使用.avi.h254或其他什么,我不知道扩展名了,ShellExecuteA()需要一个扩展名。
我能怎么办?
我的猜测是:

  • 如果ShellExecuteA()返回一个错误(不确定它是否返回),如果它返回,我可以强制执行它;是.mpeg吗?是.avi吗?还是.h264?等等......
  • 在文件名缺少扩展名的已知位置进行搜索,然后获取完整的文件名及其找到的任何内容(所有文件名都是唯一的,即使不包括扩展名)。

我知道我可以在.mp3标记中添加扩展,但是有一些原因使我不愿意这样做。

wwtsj6pe

wwtsj6pe1#

ShellExecute不需要扩展名。它需要确切的文件名。如果扩展名在Windows资源管理器中隐藏,请使其可见。如果由于其他原因不知道扩展名,请使用带有通配符*Notes*)的FindFirst查找全名。

相关问题