Repackaging Quicktime 7.7.5 on Windows 8.1

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:

ss

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.

 

Advertisements

GlidePoint Touchpad Drivers Preventing Hibernation

I have a Cirque SmatCat touchpad that I use mainly because of the improvements in scrolling it gives me via the Powerscroll capability. This is the closest I have found to the Synaptics “Coasting” feature that I can use on a desktop PC. One of the things that is better with the Synaptics devices is that you lift the finger when you start the coasting and then tap when you want scrolling to stop. PowerScroll scrolls  till you lift your finger which puts more strain on your wrist.

Having said that I tried Coasting on a Lenovo Thinkpad T410 with a Synaptics touchpad recently and I couldn’t get it to work at all, it would only “coast” for about an inch.

But I digress, we were going to talk hibernation. After I installed the Glidepoint 3.7 drivers on my Windows 7 Professional (64bit) system, I found that I could no longer hibernate my computer – it would just wake again immediately. Here’s how I fixed the problem.

Right click on Computer and select Manage, then open Device Manager and expand the keyboard and mouse devices:

HIDDevices

You may not think your Touchpad has a keyboard, but if you look at the properties on the HID Keyboard device(s) you have listed, you will find one marked with a Location of  “on GlidePoint 3.7 USB Smart Cat (Pinnacle AG)”.

HID KB Properties

You now need to switch to the Power Management tab and untick the option to “Allow this Device to wake the computer”.

AllowWake

Repeat the process for “HID Compliant Mouse” (with the same Location info) and you are done.

A quick update on this article to advise that I have just experienced similar issues with a Lenovo Thinkpad USB Keyboard with Ultranav, with similar resolution.

 

Unable to view .CHM file content under Windows 7

There is much written elsewhere about problems viewing .chm files but I experienced an issue that doesn’t seem to be documented elsewhere so I thought I should share it.

I have a collection of  .chm files I had copied to a folder called #Reference on my D: drive (the # was there to make it appear at the top of the list), but when I tried to view the content I got a message “This page can’t be displayed Make sure the web address //ieframe.dll/dnserrordiagoff.htm# is correct.

I tried the other solutions for .chm files that are well reported, but none of them worked and strangely I found that if I copied the .chm file elsewhere I could view it without problem! After much digging I came across a reference to to this very old knowledge base article KB319247 which gave me the clue I needed. In my instance the # was in the folder name rather than the file name as mentioned in the KB, but it still applies. Once I removed the # the problem went away.

Note: I also found that using a % causes problems.