I would like to share some lessons learnt while packaging Quicktime 7.7.5 under Windows 8.1, hopefully this will save some of you out there going through the same hoops.
So the requirements I want to deal with are:
1. Turn off Content Guide at Startup (We don’t really want our users browsing Movies etc on the Internet right)
2. Turn off Automatic Updates
3. .MOV files should launch with Quicktime not Windows Media Player by default
These defaults should apply to all users on the computer
The first 2 points are easy enough to apply via the UI the first is in Edit, Preferences, Player Preferences and the 2nd is in Quicktime Preferences.
We perform our capture of the changes and find that 2 files have been updated QTPlayerSession.xml and Quicktime.qtp, but hang on a second they are in the user profile. What’s the point in disabling automatic updates if you only disable them for 1 user that should be a per machine setting right, OK at home you might want the Content Guide setting to be individual but here we want it set as a default.
So applying Windows standards we move the files to the equivalent ProgramData folder to apply to all users, but Quicktime ignores them here…
The Answer (and another problem)
It turns out that the installer has a custom action AddQTPFileUserProfile that contains a script to copy both files from ProgramData\Apple Computer\Quicktime to the user profile, so we add our 2 captured files to the package in this location. We then test our application as an ordinary user and find our 2nd Gotcha – none of our settings have been applied! What happened, well the custom action copied the files to the user profile of the Admin account you installed under during the install, but there doesn’t seem to be any Self Repair or Active Setup mechanism in the package to deal with these for any new user that logs onto the PC.
The shortcut is advertised but as far as Windows Installer knows, nothing is missing from the user profile and repair does not run. Also because Apple have not followed .MSI standards which expect you to author the filetypes into the correct tables rather than just using the registry table, self-repair is not active when launched say by clicking on a .mov file and how many people launch Quicktime Player from the shortcut…?
So we need to add Active Setup to the package,this triggers a repair & Apple’s custom action copies the files from ProgramData. NB Active Setup ran silently & at first I thought it had failed, but when I checked the files had been copied to the user profile. Be aware also that in a 64bit environment the Active Setup keys get created under WOW6432Node.
.MOV File Type Association in Windows 8.1
Now to dealing with our 3rd requirement. If you check the registry for .MOV under HKCR you will find that the default is set as “QuickTime.mov” so everything seems fine, or maybe not.
When you try to open a .MOV file you get the following prompt:
It seems like Windows wants to remind you that you can now open .mov files with Windows Media Player and is saying are you sure? My personal experience is that WMP fails to work with .mov files from my old camera, I get a message “Windows Media Player cannot play the file” the message also suggests it might not support the codec used (I believe more recent .mov files use a different codec).
If you choose QuickTime at this point the file association is completed and the icon on .mov files changes to a QuickTime icon. This isn’t the turnkey behaviour we want in our package however
It turns out Microsoft have made some big changes in this area – see this Technet Blog One advantage of these changes on a shared PC seems to be that different users could have different preferences for their file extensions. In a home environment for example there could be different preferences for .jpg files.
So far I have not managed to find a way round this and from a Packager’s perspective it seems to be one more reason to avoid Windows 8, but please submit a comment if you know better.