0

InternetExplorerと互換性を持たせようとしていると誰かが書いたFireBreathプラグインソースがあります。このプラグインでは、.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だけの場合は、「プロテクトモードInternetExplorerの理解と操作」をお読みください。

FireBreathのヒントとコツも参照してください。

于 2012-10-04T23:58:40.557 に答える
1

getLocalAppDataPathは、ユーザープロファイルのlocalLow領域へのパスを返すだけです。この場合、それはおそらくあなたに与えるでしょう:

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

ディレクトリが作成されたことなどを保証するものではありません。それを実行したい場合は、 boost :: filesystemを使用することをお勧めします。これは、クロスプラットフォームになるためですが、実際には何でも使用できます。

How to find out if a folder exists and how to create a folder? has some other good ideas mostly using system API calls (windows only).

于 2012-10-05T02:55:28.993 に答える