0

我有一个 FireBreath 插件源,有人写道,我试图使其与 Internet Explorer 兼容。在这个插件中,.flv下载视频,然后在 Windows CMD.EXE 中执行 FFMPEG 以将其转换.flv为另一种媒体格式。该命令从CreateProcess(...).

我的问题是该CreateProcess命令总是返回错误代码 5,我认为这是拒绝访问。该命令在命令行上工作(FFMPEG 正确地进行了转换),但不是来自插件。

请注意,我已经获得了 AppData 路径:

string appDataPath = FB::System::getLocalAppDataPath("My Company Name LLC")

是否必须在某处添加注册表项才能“初始化”此路径?

4

2 回答 2

2

假设它也不适用于 Chrome/Firefox。

  1. 如果您尝试运行自己的可执行文件 - 指定绝对路径。
  2. 尝试使用在同一文件夹中加载 DLL LoadLibrary- 我认为这可以提供有关路径是否正确的更好信息。

如果 IE 是您遇到问题的唯一浏览器,请阅读理解和在保护模式下工作 Internet Explorer

另请参阅FireBreath 提示和技巧

于 2012-10-04T23:58:40.557 回答
1

getLocalAppDataPath 只返回用户配置文件中 localLow 区域的路径;在这种情况下,它很可能会给你:

C:\Users\YourUser\AppData\LocalLow\My Company Name LLC

它不能确保已经创建了目录或类似的东西。如果你想这样做,我建议使用 boost::filesystem,因为那将是跨平台的,但你真的可以使用任何东西。

如何确定文件夹是否存在以及如何创建文件夹?还有一些其他的好主意,主要使用系统 API 调用(仅限 Windows)。

于 2012-10-05T02:55:28.993 回答