2012-03-28 20 views
0

FireBreath-Plugin内からnotepad.exeを起動しようとしていますが、適切なAPI関数(この時点では "echo" 「NPObjectでメソッドを呼び出す際にエラーが発生しました!」とクラッシュします。 FireFoxで。ここでFireBreath:CreateProcess() - > NPObjectでメソッドを呼び出す際にエラーが発生しました

は私のコードです:私は間違っ

FB::variant redtestAPI::echo(const FB::variant& msg) 
{ 
    STARTUPINFO si; 
    PROCESS_INFORMATION pi; 

    ZeroMemory(&si, sizeof(si)); 
    si.cb = sizeof(si); 
    ZeroMemory(&pi, sizeof(pi)); 

    // Start the child process. 
    if(!CreateProcess(NULL, // No module name (use command line) 
    L"notepad.exe",  // Filename 
    NULL,   // Process handle not inheritable 
    NULL,   // Thread handle not inheritable 
    FALSE,   // Set handle inheritance to FALSE 
    0,    // No creation flags 
    NULL,   // Use parent's environment block 
    NULL,   // Use parent's starting directory 
    &si,   // Pointer to STARTUPINFO structure 
    &pi)   // Pointer to PROCESS_INFORMATION structure 
) { 
    return "error"; 
    } 

    return "foo"; 
} 

何をしているのですか?私はこのエラーメッセージ( - > System.security.allowDomain)に関するFlashのセキュリティソリューションを見つけましたが、FireBreathでは何も見つかりませんでした。私は間違って何をしていますか?事前に

おかげ

heinob

+0

申し訳ありません、もちろん私は "CreateProcessAsUser"ではなく "CreateProcess"を使用しています。これはミスタイプです。 "AsUser"を無視してください – heinob

答えて

2

FireBreath自体が起動してからのCreateProcessを助けたり、予防するため何もしません。実際にはクラッシュか、それともJavaScriptの例外をスローしますか?プラグインが実際にクラッシュした場合、コールがクラッシュします。それ以外の場合は、キャッチされない例外です。

ここでは、あなたが知る必要があるFireBreath固有のことは何もありません。デバッガを接続し、ブレークポイントを設定し、何が起きているのかを確認するだけです。

+0

あなたは正しいです!代わりに 'ShellExecute(NULL、NULL、L、notepad.exe"、L ""、NULL、SW_SHOW);を使って解決しました。 – heinob

関連する問題