Skip to content

Sequencing Apple QuickTime 7.x

QuickTime-SoftGridBox If you’ve ever looked at deploying Apple QuickTime on Windows you have no doubt run into the challenges in configuring settings for this application. Successfully deploying QuickTime via SoftGrid/Microsoft Application Virtualisation requires that users receive the correct preferences before they run the application.

For some absurd reason QuickTime stores part of it’s preferences in the registry, while the other half is stored in the file system. It’s the those preferences that have the most visual impact on users that are stored in the file system.

Preferences are stored in the local portion of the user profile, which by default is not virtualised. Because of this, any settings you may configure will not be included in a QuickTime SoftGrid package. Preferences are stored here:

%USERPROFILE%\Local Settings\Application Data\Apple Computer\QuickTime\QuickTime.qtp

There are a couple of ways that I would recommend addressing this issue when sequencing QuickTime:

  1. Change the preferences folder location. A single registry change can tell QuickTime to store preferences in the roaming profile; or
  2. Copy the preferences files to the local profile using the SCRIPT portion of the OSD file before QuickTime runs.

Installing QuickTime

Before I look at setting preferences, I’ll address installing QuickTime. Before installing I’ve extracted the installer available from the Apple web site (this may work without extracting) and then use a script to:

  • Install QuickTime to the client drive (in this case Y: ) 
  • Ensure Apple Software Updater is not installed
  • Delete any icons not required
  • Delete the QTTASK.EXE application from the Run registry key 
  • Ensure users are not prompted to reclaim file associations by the ActiveX control
@ECHO OFF
IF NOT EXIST Y:\00000010\QuickTime MD Y:\00000010\QuickTime
START /WAIT QuickTime.MSI /QB ISSETUPDRIVEN=0 ALLUSERS=1 DESKTOP_SHORTCUTS=0 QTTaskRunFlags=0 QTINFO.BISQTPRO=1 SCHEDULE_ASUW=0 INSTALL_ASUW=0 REGSRCH_INSTALL_ASU=0 REBOOT_REQUIRED=No INSTALLDIR=Y:\00000010\QuickTime
IF EXIST "Y:\00000010\QuickTime\QTTASK.EXE" DEL "Y:\00000010\QuickTime\QTTASK.EXE"
IF EXIST "%APPDATA%\Microsoft\Internet Explorer\Quick Launch\QuickTime Player.LNK" DEL "%APPDATA%\Microsoft\Internet Explorer\Quick Launch\QuickTime Player.LNK"
IF EXIST "%ALLUSERSPROFILE%\Start Menu\Programs\QuickTime\Uninstall QuickTime.LNK" DEL "%ALLUSERSPROFILE%\Start Menu\Programs\QuickTime\Uninstall QuickTime.LNK"
IF EXIST "%ALLUSERSPROFILE%\Start Menu\Programs\QuickTime\About QuickTime.LNK" DEL "%ALLUSERSPROFILE%\Start Menu\Programs\QuickTime\About QuickTime.LNK"
IF EXIST "%ALLUSERSPROFILE%\Start Menu\Programs\QuickTime\Apple Software Update.LNK" DEL "%ALLUSERSPROFILE%\Start Menu\Programs\QuickTime\Apple Software Update.LNK"
REG DELETE HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v "QuickTime Task" /f
REG ADD "HKLM\SOFTWARE\Apple Computer, Inc.\QuickTime\ActiveX" /v AlwaysReclaimAssocations /d 2 /t REG_DWORD /f

Change The Preferences Folder Location

To change the folder location for storing preferences modify the following registry value as a part of your capture process:

HKEY_CURRENT_USER\Software\Apple Computer, Inc.\QuickTime\LocalUserPreferences\FolderPath

For this to work correctly, you must add a trailing slash to the path:

%USERPROFILE%\Application Data\Apple Computer\QuickTime\

This will tell QuickTime to store preferences in the roaming profile and thus any changes will be captured by the sequencer. Alternatively you could store preferences in a common location:

%ALLUSERSPROFILE%\Local Settings\Application Data\Apple Computer\QuickTime\

Copy The Preferences File At Run Time

If you would prefer to leave the preferences file in it’s default location, you will have to copy a pre-configured preferences file at launch.

Create the QuickTime preferences by first installing QuickTime onto a test machine, configuring the required preferences, then copy the preferences file to a folder under the asset folder. Then modify the OSD file to copy the configured preferences file when QuickTime is launched:

<script event="LAUNCH" wait="TRUE" protect="TRUE" timing="PRE">
  <SCRIPTBODY>@XCOPY /E /I /Q Y:\00000010\Prefs "%USERPROFILE%\Local Settings\Application Data\Apple Computer\QuickTime"</SCRIPTBODY>
</script>

If you’re using Windows Vista or Windows Server 2008 change the path slightly:

<script event="LAUNCH" wait="TRUE" protect="TRUE" timing="PRE">
  <SCRIPTBODY>@XCOPY /E /I /Q Y:\00000010\Prefs "%LOCALAPPDATA%\Apple Computer\QuickTime"</SCRIPTBODY>
</script>

To support current and previous operating systems in the same package you could use this script instead:

<script event="LAUNCH" wait="TRUE" protect="TRUE" timing="PRE">
  <SCRIPTBODY>IF EXIST "%LOCALAPPDATA%" (@XCOPY /E /I /Q Y:\00000010\Prefs "%LOCALAPPDATA%\Apple Computer\QuickTime") ELSE @XCOPY /E /I /Q Y:\00000010\Prefs "%USERPROFILE%\Local Settings\Application Data\Apple Computer\QuickTime"</SCRIPTBODY>
</script>

Which Preferences Should I Set?

Once QuickTime is deployed, you’ll want to ensure users don’t see a couple of dialog boxes. First up there’s the dialog that asks users to register file type associations to QuickTime. Then there’s the Update dialog when a new version of QuickTime is released. This functionality needs to be disabled.

DefaultQuickTime

UpdateQuickTime

I recommend ensuring the following settings are not selected in QuickTime preferences:

  • Browser / MIME Settings / Notify me if other applications modify these associations
  • Update / Check for update automatically
  • File Types / Notify me if other applications modify these associations
  • Advanced / Install QuickTime icon in system tray
  • Browser / Play movies automatically

    Last Word

    You will need to create a shortcut to Internet Explorer so that you can use QuickTime to view media in web pages. Just as you would when virtualising any other ActiveX controls.

    I recommend against providing users with a shortcut to the QuickTime PictureViewer application. This application does not honour the setting to not prompt to set file associations unless all files are associated to PictureViewer. Defeats the point of having the option not to prompt doesn’t it?

  • 10 Comments

    1. Marc Fearby wrote:

      Thanks for the recipe. I’m “cooking” it now and made the registry changes during the first monitoring phase, and now that I’m monitoring the first-run of QuickTime, I noticed that QuickTime still saved the settings file to “%USERPROFILE%\Local Settings\Application Data\Apple Computer\QuickTime\QuickTime.qtp”, and now when I check the registry to see if I might have stuffed up, there are no “HKLM\Software\Apple Computer, Inc.” or “HKCU\Software\Apple Computer, Inc.” keys at all.

      When monitoring during the second phase, is QuickTime actually being virtualised at that point and could this be why those keys aren’t visible (to me) at that point? Or does QuickTime actually delete those keys for some really handy reason known only to those wonderful software developers at Apple?

      This application virtualisation caper is fast turning into a complete pain in the you-know-what.

      Posted on 06-Feb-08 at 2:28 am | Permalink
    2. Hi Marc, give the second option a go, where you copy the QuickTime.qtp file into the profile at launch.

      Posted on 06-Feb-08 at 5:18 pm | Permalink
    3. JC wrote:

      I tried using this recipe and everything seemed to work just fine except copying over QuickTime.qtp during pre-launch. I have the .qtp file in a folder called prefs under the asset folder (I am assuming when we are talking asset folder it is the folder where the sprj file is saved to or the install folder that was used on teh sequencer…I went ahead and put the Prefs folder with the QuickTime.qtp file under it in both spots) and I put the script for it to do an xcopy (see below) in my osd file but it still does not copy the file. I do see the cmd box appear and it disappears pretty quickly but I do see the word prefs so I know it is running something to do with the prefs. I did a search on the target machine to see if it was possibly copying the file to the wrong directory and there is no other quicktime.qtp file besides in the %USERPROFILE%\Local Settings\Application Data\Apple Computer\QuickTime\ directory. Any thoughts?

      @XCOPY /E /I /Q Q:\Quick_Time7.v01\Prefs “%USERPROFILE%\Local Settings\Application Data\Apple Computer\QuickTime”

      Posted on 14-Mar-08 at 9:59 pm | Permalink
    4. JC wrote:

      Looks like it cutoff part of my Script statement…lets try again.

      @XCOPY /E /I /Q Q:\Quick_Time7.v01\Prefs “%USERPROFILE%\Local Settings\Application Data\Apple Computer\QuickTime”

      Posted on 14-Mar-08 at 10:01 pm | Permalink
    5. JC wrote:

      Not sure why it is cutting it off but basically it is under the dependency area and it is just under the Client Version section. The script lines look identical to your lines above except my SG virtual drive letter and folder is Q:\Quick_Time7.v01\Prefs.

      Thanks in advance.

      Posted on 14-Mar-08 at 10:02 pm | Permalink
    6. Hi JC, drop me a line through my contact page so you can send me a copy of your OSD file and I might be able to see whats happening.

      What does stand out there, but not the cause, is that your asset folder (Q:\Quick_Time7.v01) is more than 11 characters long. You should really be sticking to a 8.3 type folder name to avoid conflicts with other packages.

      Posted on 15-Mar-08 at 9:13 am | Permalink
    7. badshadd wrote:

      I’ve been working with your great recipe that you developed with QuickTime 7.4.1.14 & I’ve had the same difficulties as JC stated in his comments. Did you identify what he had done wrong? I tried using @XCOPY, XCOPY & plain COPY in PRE LAUNCH, POST LAUNCH & POST SHUTDOWN scripts, but I’m still getting prompted at initial launch (only once) with the register file type associations dialog box which I believe overwrites the file I want to copy. The QTP file still doesn’t get overwritten after subsequent launches. If I manually copy the QTP file through my virtual IE link to the local system profile (while in the virtual enviroment on the client system), it works & still doesn’t get overwritten on subsequent launches. I don’t get it. Once again, these are beautifully written instructions, I’m just trying to put the icing on cake for delivering the preconfigured preferences to the end-user. ;^)

      Posted on 28-Mar-08 at 2:14 pm | Permalink
    8. I’ve updated the post with because the original script to copy preferences would work only on XP/2003. I’ve added support for Vista/2008.

      Posted on 28-Mar-08 at 3:54 pm | Permalink
    9. ucfchica1 wrote:

      %ALLUSERSPROFILE%\Local Settings\Application Data\Apple Computer\QuickTime\ is not retaining my QT settings after changing my Registry entry to reflect the new location?

      Posted on 30-Apr-08 at 5:14 pm | Permalink
    10. Is that folder virtualised in your package? If it is not, users won’t have write access to that location. I would recommend placing the settings file inside your package on the Q: drive.

      Posted on 30-Apr-08 at 6:02 pm | Permalink

    One Trackback/Pingback

    1. [...] Sequencing Apple QuickTime 7.x [...]