Как запустить файл, связанный с QuickTime, из установщика NSIS? - PullRequest
0 голосов
/ 15 ноября 2011

Мы требуем, чтобы пользователи имели копию QTJava.zip в своей папке jre / lib / ext, чтобы мы могли воспроизводить файлы QuickTime без добавления в путь к классам.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.

У нас есть диалоговое окно выбора, где пользователь выбирает свою JRE, и мы хотели бы предложить пользователю запуститьэтот установщик сразу после этого шага (при условии, что QTJava еще не существует; мы проверяем это).Предполагая, что файл «.mov» находится в папке базовой установки, какие шаги предпринимаются для «запуска» этого файла?Пока что ничего не помогло, и перечисление каждого испробованного нами метода заняло бы страницы, поэтому было бы полезно по-новому взглянуть.

1 Ответ

1 голос
/ 15 ноября 2011

Для запуска файлов не .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"'
...