私が作成した NPAPI プラグイン (Javascipt 呼び出しによってトリガーされる操作の実行に関しては正常に機能する) が、CreateProcess() または ShellExecute() を使用して、Javascript 呼び出しによって指定されたパスからアプリケーションを起動できない理由を解明しようとしています。
これらのメソッドのいずれかを使用できるようで、成功を返します。つまり、エラー コードはありません。しかし、アプリケーションは起動しません。それらを呼び出すときに使用されるパラメーターを変更して、新しいプロセスグループなどを作成しようとしましたが、一見効果がありません。
これはちょっとしたセキュリティ リスクのように思えるかもしれませんが、非常に特定の目的のために使用したい場合は問題になりません。
Windows XP Pro SP3、Firefox 3.5、および次のコードを使用:
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
if( CreateProcess( NULL, wFileName, NULL, NULL, FALSE,
CREATE_NEW_CONSOLE | CREATE_NEW_PROCESS_GROUP,
NULL, NULL, &si, &pi ) )
{
bSuccess = true; // Close process and thread handles.
WaitForSingleObject(pi.hProcess,INFINITE);
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
}