2011-11-15 13 views
0

クラスパスに追加することなくQuickTimeファイルを再生できるように、ユーザーはjre/lib/extフォルダにQTJava.zipのコピーを持っている必要があります。 QuickTimeはこのためのインストールプロセスを提供しています:http://commons.oreilly.com/wiki/index.php/QuickTime_for_Java:_A_Developer%27s_Notebook/Getting_Up_and_Running_with_QuickTime_for_JavaQTJインストールのプリフライトのセクションを参照)基本的に、QT関連のファイルをインストーラから実行する必要があります。QTは既にインストールされているため、 ".mov"ファイルが実行されたときにムービープレーヤに表示されます。NSISインストーラからQuickTime関連ファイルを実行するには?

ユーザがJREを選択する選択ダイアログがあり、この手順の直後にこのインストーラを実行するようにユーザに促したい(QTJavaがまだ存在しないと仮定して、これをチェックする)。 ".mov"ファイルが基本インストーラフォルダにあると仮定すると、このファイルを "実行中"にどのようなステップが含まれていますか?これまでのところは何も働いていないし、私たちが試した各方法をリストアップするとページを取り上げるので、新しい視点が役立ちます。

+0

あなたは.MOVを再生するためにQTJava.zipを持っているユーザーが必要なのはなぜ? QuickTimeはシステムにインストールできますが、JREにはQTJava.zipはありません。 .movファイルを再生できる他のプレーヤーをインストールすることができます...あなたは最終的に何を達成したいですか? –

+0

QTJavaを使用してアプリケーションでファイルを再生するので、クラスパスにその場所が存在する必要があります。 QTJがQTファイルを再生する必要があるため、ユーザーがインストールしている他のアプリは何であるかは問題ではありません。 – wade

+0

アプリケーションで.movファイルを再生したいのですが、それは正しいですか?その後、この質問はインストーラとは関係なく(あなたはその部分を解決したようです)、* QTJava API documentation *を読むべきです。 –

答えて

1

.exe以外のファイルを実行するにはExecShellが必要です。 ExecShellは、エクスプローラでダブルクリックするだけで入手できます。

ただし、.movは一般的な拡張機能であり、エンドユーザーが.movファイルを開くように設定しているかどうかわからない場合は、MPC、VLC、mplayerなどとなります。 。

QTを見つけて、それを直接実行しようとし、おそらくより良いです:

ReadRegStr $0 HKLM "SOFTWARE\Apple Computer, Inc.\Quicktime" "InstallDir" 
ExecShell "" '"$0\QuicktimePlayer.exe"' '"$Instdir\MyFile.mov"' 
+0

私はファイルとしてQuickTimePlayer.exeをargとして呼び出さなければならないことを知っていました - ごめんなさい。しかし、上記の方法は2つの理由から機能しません。QTが実行するために.movファイルがディスク上に存在しないため(エラー-43)、インストーラはただちに続行します。ユーザーが実際にQTJをインストールしたかどうかを知る必要があるため、プロセスはExecWaitのように動作する必要があります。このファイルをディスクにコピーする方法がありますか(おそらく、一時フォルダにありますか?)、ExecWaitで実行しますか? $ PLUGINSDIRを使用してこの方法を試しましたが、フォルダが作成されていないため、そこに何もコピーできませんでした。 – wade

+0

@wade $ pluginsdirにコピーする前にInitPluginsDirを使用してください。 – Anders

関連する問題