我有一个FireBreath插件源代码,有人写过我正在尝试与Internet Explorer兼容。在此插件中,下载.flv
视频,然后在Windows CMD中执行FFMPEG.EXE以将.flv
转换为另一种媒体格式。该命令从 CreateProcess(...)
运行。
我的问题是CreateProcess
命令总是返回错误代码 5,我想这是拒绝访问。该命令在命令行上工作(FFMPEG 正确进行转换),但不能从插件工作。
请注意,我已经获得了应用程序数据路径:
string appDataPath = FB::System::getLocalAppDataPath("My Company Name LLC")
是否有必须添加注册表项才能"初始化"此路径?
假设它在Chrome/Firefox上也不起作用。
- 如果您尝试运行自己的可执行文件 - 指定绝对路径。
- 尝试使用
LoadLibrary
在同一文件夹中加载 DLL - 我认为这可以提供有关路径是否正确的更好信息。
如果 IE 是您遇到问题的唯一浏览器,请阅读了解并在保护模式下工作 Internet Explorer。
另请参阅FireBreath提示和技巧。
getLocalAppDataPath 只返回用户配置文件中 localLow 区域的路径;在这种情况下,它很可能会给你:
C:UsersYourUserAppDataLocalLowMy Company Name LLC
它不能确保已创建目录或类似内容。 如果你想这样做,我建议使用 boost::filesystem,因为这将是跨平台的,但你真的可以使用任何东西。
如何确定文件夹是否存在以及如何创建文件夹? 还有其他一些好主意,主要使用系统 API 调用(仅限 Windows)。