2011-11-15 2 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_Java (QTJ 설치 프리 플라이트 참조) 기본적으로 설치 프로그램에서 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 설명서 *를 읽어야합니다. –

답변

1

.exe가 아닌 .cmd/.bat 파일을 실행하려면 ExecShell이 ​​필요합니다. ExecShell은 얻을 수있는 "탐색기에서 두 번 클릭"에 가깝습니다.

여기에 문제가 있습니다. .mov는 일반적인 확장이며 최종 사용자가 .mov 파일을 열도록 설정했는지, MPC, VLC, mplayer 등일 수 있으므로 ExecShell을 사용하면 실패 할 수 있습니다. .

그것은 QT를 찾기 위해 시도하고 직접 실행하는 것이 좋을 것입니다 :

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

나는 QuickTimePlayer.exe 파일을 arg로 호출해야한다는 것을 알고있었습니다. 죄송합니다. 그것에 대해 명시 적으로 말하지 않았습니다. 그러나 위의 방법은 두 가지 이유로 작동하지 않습니다. QT가 실행될 수 있도록 .mov 파일이 디스크에 존재하지 않고 (오류 -43) 설치 프로그램이 즉시 계속됩니다. 사용자가 실제로 QTJ를 설치했는지 알아야하므로 프로세스가 ExecWait처럼 작동해야합니다. 이 파일을 디스크 (일부 임시 폴더에 있음)에 복사 한 다음 ExecWait으로 실행할 수 있습니까? $ PLUGINSDIR을 사용하여이 방법을 시도했지만 폴더가 만들어지지 않아 아무것도 복사 할 수 없습니다. – wade

+0

@wade $ pluginsdir에 복사하기 전에 InitPluginsDir을 사용하십시오. – Anders