Wednesday, October 17, 2007

Sequencing... WinZIP

There is no real problem in sequencing WinZIP: just follow the standard procedures, and you got yourself another SoftGrid package! Except for one annoying message that keeps on popping up: "WinZIP is currently not associated to...". In the sequencer, this error does not appear.

What goes wrong here is the good ol' File-Type-Association that is handled by SoftGrid and no longer by WinZIP itself. In fact, there is nothing you can do to prevent this message, except for making sure it does not appear anymore. This can be done by adding a virtual registry key AssocMsg at:

HKCU \ Software \ Nico Mak Computing \ WinZip \ WinZip

as a REG_SZ and setting its value to "0". This simply does not show that particular dialog window anymore to the user. This does not impact the functionality of WinZIP, since the filetype associations are handled by the SoftGrid client.


Jeff said...

Not a perfect solution, but the best one possible. Thanks for the post!

Jeff said...

Thanks for this post, it is very helpful. I ran into another issue, wondering if you ran into the same thing and if you have a fix. After sequencing WinZip and running it, I noticed that there is no longer a right click toolbar for WinZip.

Anonymous said...

Jeff - Did u got any solution for right click toolbar for winzip?

Tim Jacobs said...

There is no real solution for the lack of shell integration with WinZip (or any other program for that matter). Shell integration is accomplished by registering a handler for the explorer process. Since the explorer process runs at the level of the operating system (and not in a virtual environment), this means that the handler has to be registered at the OS level too. As you guys know, the goal of a virtual package is precisely to isolate the files/registry of an application from the OS -- therefore, the concept of application virtualization simply does not allow to register a virtualized explorer extension at the OS level.

There are workarounds though, but I am unaware if one exists for other applications than Office 2010. You might have heard that Office 2010 was developed "specifically with application virtualization in mind". You are aware that Office performs a tight OS integration (such as integration with Internet Explorer for better SharePoint 2010 experience, there is a "send to OneNote" printer, ...). Obviously this happens at the OS level so by virtualizing Office 2010, this functionality is lost (for exactly the same reason as why there is no explorer extension possible -- IE and printers work at the OS level and this level is unaware of virtualized components). As a workaround, Microsoft released the "Office 2010 deployment kit for App-V" -- this is a very clever workaround in the sense that it installs software at the OS level (to make the integration with IE and the OS work) which forwards the requests from the OS into the virtual environment. For more information specific to Office 2010, there is a very nice TechEd presentation by Adam Kiu which you can watch here:

So to summarize, unless the application developers find a way to "workaround" the isolation between the virtual package and the OS that is inherent to application virtualization (and which is "a good thing" (TM) !!!!! ), or unless very magically for a specific application it is possible to do some dirty manual fooling around to get it working, I'm afraid you are going to be out of luck for the explorer integration.

arjun said...

set AssocMsgExe to 0

arjun said...

Set AssocMsgExe to 0

Lenz said...

Using WinZp 17.0 Pro (x64), App-V 5.0 on Windows 7 x64 following steps worked for me:

1. At the "Configure Software" stage (during Application Virtualization procedure) execute the WinZip application at least 2 times, close the occasionally "WinZip Tip of the Day"-Windows and wait for some seconds until closing/restarting the app.

The official MS Sequencing Guide says: "Many applications have first-run tasks such as accepting license agreements, etc. [...] multiple executions are recommended to ensure any second-run tasks are executed). Also, it is during this execution that any applicable application configuration changes should be made. [...] This screen is also running in monitoring mode. It is possible to manage the tasks for programs that are not listed on this page by launching them outside of the Sequencer."

2. Executing WinZip a 3rd time, (close Tip-of-the-Day-Window,) leave WinZip open and execute reg add "HKCU\Software\Nico Mak Computing\WinZip\WinZip" /v AssocMsgExe /t REG_SZ /d 0 /f in the Start menu search box (or via cmd.exe etc.).

3. Close WinZip app and execute it again a last (4th) time. Then proceed with App-V...

4. At the "Create Pckage" stage select "Continue to modify package without saving the package editor" and go to the "Virtual Registry"-Tab: Verify if REG_SZ AssocMsgExe with value 0 is under USER\[{AppVCurrentUserSID}]\Software\Nico Mak Computing\WinZip\WinZip and save the package.

That's it!

After publishing on a client-PC the popup should be suppressed. Locking at the registry (after the 1st program start) you should find AssocMsgExe at:
HKCU\Software\Classes\AppV\Client\Packages\[ Package ID ]\Versions\[ Version ID ]\REGISTRY\USER\[ User ID ]\Software\Nico Mak Computing\WinZip\WinZip
HKCR\AppV\Client\Packages\[Package ID]\Versions\[Vdersions ID]\REGISTRY\USER\[User ID]\Software\Nico Mak Computing\WinZip\WinZip

Adding AssocMsgExe to the Virtual Registry inside the Package Editor after the monitoring mode takes no effect: on the 1st start of WinZip you'll see the popup for 1 single time again, because the suppressing REG_SZ will be written not until the first program start. You have to add the SZ during monitoring mode.