About a few months ago, I got a new desktop computer. I don’t remember how it all started, but one day I found out that I can’t right click anywhere on a folder. The behavior was quite strange. Whenever I right click a folder (either on the desktop or within a folder) or use Ctrl+C when the folder is highlighted, the dreaded hourglass would occur and the desktop would become unresponsive. I had to kill the explorer.exe and restart it by running from task manager to get my desktop back.
Since I could do most of my work without ever doing a right click on a folder (while, like the old DOS days, pretty much anything that requires a right click can be accomplished using command line), it did not bother me that much and I kind of let the problem go.
But as I got some slack time, I wanted to get to the bottom of this problem. After searching the internet for a while, I couldn’t seem to find any solution (the closest one I could find is http://support.microsoft.com/kb/918165). So I decided to try to figure it out by myself.
First I used Spy++ trying to see what happens when I right-click a folder. It seemed that after the WM_RBUTTONDOWN message, the WM_RBUTTONUP message did not fire. But interestingly, if I waited long enough (a minute or two) the WM_RBUTTONUP message would eventually come up and the desktop would become responsive again. So something must have been timed out.
From my past experience, this has something to do with shell extensions. It looks like that some program has added a shell extension that somehow does not function correctly. So I went to search in the registry. After a few minutes of digging, I found one PGP 8.1 entry suspicious because it is the only entry that could have used a shell extension in my knowledge. Eventually, I traced it to a service called PGPserv. And for whatever reason this service is disabled. So I tried to set the service startup method to be automatic and bingo, the right click worked!
Now it is clear to me that the version of PGP I was using used a shell extension service to handle encryption tasks, which are invoked via right clicks. When this service is disabled the right click event would never get to the service and thus would eventually time out. That was exactly the reason why the desktop would freeze when I right clicked on folders.