Saturday, April 20, 2013

How to detect and disable faulty context menu items (shell extensions) in Windows

Many software applications  that execute in Windows 8 (and earlier Windows versions) come with so-called Windows shell extensions.

These are intended to provide extra application functionality and convenience and they usually do a good job, but like any other software they can go wrong and cause complete or partial application failure -- with considerable bother and even havoc in some cases.

This is a longish blog post, necessitated by the complexity of the way that shell extensions work. They are so tightly interwoven into the parent applications that it can be very difficult to identify, isolate and resolve problems with them.

Hence I’ve gone to the trouble to explain it carefully and in some detail.  I hope it will save you wasted time and ease your frustration if you happen to become a victim!

As the name extension implies, these code elements provide extra functionality to File Explorer (you’ll know it as Windows Explorer in earlier versions of Windows) and other parts of Windows.
As MSDN puts it: “The Windows UI provides users with access to a wide variety of objects necessary for running applications and managing the operating system. The most numerous and familiar of these objects are the folders and files that reside on computer disk drives. There are also a number of virtual objects that allow the user to perform tasks such as sending files to remote printers or accessing the Recycle Bin.”

Shell extension handlers are developed by Microsoft as part of Windows itself, but also by many third-party developers ranging from  big software corporations right down to solo developers. (There’s a vast number of the latter in the Windows community, many of whom provide  retail or freeware products of very high quality).

The type of extension handler that I’m focusing on in this post is  Shortcut menu handlers which these days are more commonly referred to as Context menu handlers.

A context menu -- or shortcut menu -- appears when you right click on an object in File Explorer or other contexts such as dialog boxes. For example, in File Explorer to edit the hosts file I might do the following (with the pointer showing where I performed the right click mouse operation):

image

Context menus are extremely useful, and it’s not long after installing Windows and your favorite third-party software products that there will be quite an assortment of context menu handlers present in your Windows system, all waiting to do your bidding. A typical example:

image

All right, all right, everybody knows that. Let’s move on to the real point of this blog post.
Last October (2012) I took delivery of what might well be my last ever Windows desktop system. For my prime development system I switched from a quite adequate 4-core machine running Windows 7 64-bit (with a healthy 8 GB of RAM and several terabytes of SSDs plus more terabytes of spinning disks) to an even zippier 8-core machine (with 32 GB of RAM, twin faster SSDs in RAID mode plus even more terabytes of spinning disks), also running 64-bit Windows 7 Ultimate.

This was a few weeks prior to the release of Windows 8 Pro. Once it was released, I tested Windows 8 Pro extensively in a virtual machine environment -- especially getting back some favorite Windows features that Microsoft removed such as the Start Button (via Classic Shell, which I had long been using on Windows 7) and desktop gadgets (via a hack, the 8GadgetPack). I mention this here only because Windows 8 Pro was my final destination.

All went well for a month or two, and then I started having unusual problems with Windows Explorer on the new Windows 7 machine (but not on the old one).

I happen to be an extremely heavy user of context menus, and sometimes in Windows Explorer -- but not every time -- when I invoked a context menu (similar to the example above) there would be a pause lasting a few seconds followed by the following error dialog (1):

(1) WIndows_Explorer_has_stopped_working__Upon_context_menu_invocation
(Click on the various images to view enlargements)

Upon clicking the Cancel button, the following dialog (2) appears:
(2) WIndows_Explorer_has_stopped_working__After_clicking_Cancel_button_in_step_1

THE QUESTION:
What could be causing such errors? A little research at the Microsoft support website plus other Windows specialist sites indicated that this sort of thing is likely to be caused by a faulty Windows shell context menu handler.

The question that I was faced with – exactly as you will be in similar circumstances -- is which of many installed software products (ranging from complex suites to tiny single-purpose utilities) have context menu handlers? And then, of course, how do you determine which specific piece of software is causing the current fault?

A SOLUTION:
The universal answer to this seems to be to go to Nir Sofer’s excellent freeware product site. For today’s exercise, download and install the ShellExView utility which enables you to display details of all the shell extensions installed on your computer, and to easily disable or enable each individual shell extension.

TIP - While at the site, you might consider downloading Nir’s entire suite of utilities in a neat package called NirLauncher, a package of more than 150 portable freeware utilities for Windows. The NirLauncher package includes a “variety of tools that you may need for your daily computer use, including utilities to recover lost passwords, to monitor your network, to view and extract cookies, cache, and other information stored by your Web browser, to search files in your system, and more.”

THE BASIC PRINCIPLE:
Identifying and adopting a systematic, consistent debugging approach for the more esoteric parts of Windows can be very difficult.

In this case, by disabling shell extensions one at a time, you should be able to determine whether or not it’s the one causing the problem. But this is easier said than done.

Firstly, you’ll find that your system has dozens and dozens of shell extensions installed. Therefore disabling, testing, then [if not faulty] re-enabling them one at a time is a slow and elaborate process.
Secondly, it’s not always easy to recognize and reproduce the conditions that cause the error. For example, while this context menu error was repeatedly occurring on my new Windows 7 machine, it never did arise on the old Windows 7 system. Despite my best attempts to keep the apps on the two systems in synchronization, apparently the new system had some differently installed and/or configured applications.

It happened that this problem was not at the top of my priorities as the end 2012 approached, so I let it slip as summer vacation time arrived here Down Under.

In no time it was January 2013, and I was planning to upgrade from Windows 7 to Windows 8 Pro before the end of January (being a miser, I wanted to do this before the expiry of Microsoft’s generous $14.99 upgrade price offer). The in-place upgrade to Windows 8 went surprisingly smoothly. I only had to reinstall a couple of products to make them work properly again, and  most products worked without a hitch. (I only had to chase down a single device driver update, for an external hard disk docking station  that had stopped running at USB 3.0 speeds, and to reinstall a couple of programs after which they worked fine.)

So now I had Windows 8 Pro running pretty well (using my four monitors in non-touchscreen mode, operating 99 percent like Windows 7 did prior to the upgrade, is exactly how I wanted). I get all the benefits of the many under-the-cover enhancements in Windows 8 while happily avoiding the “Modern UI” (a.k.a. “Metro”) like the plague. (It has no relevance  at all for the way I work.  Whenever I purchase a Windows 8 Pro tablet then, and only then, will I be content to make use of this new tiled interface. But that’s another story.)

But guess what? Whenever I right-click on a folder in the left navigator column of File Explorer, I discover that Explorer always freezes for a few seconds and then closes unceremoniously, without displaying the indicative error dialog that I mentioned above (the earlier  screenshot “Windows Explorer has stopped working”) . . . No  error message at all, zilch, nada – I really appreciate that, Microsoft!

Luckily, if you call it that, I had been experiencing the Explorer freeze-ups with Windows 7. So I surmised -- quite rightly as it transpired -- that this was likely to be that same context menu bug. I should point out here that without the prior experience under Windows 7 I would have been totally I the dark, without any clue about what was happening under Windows 8 and why. For some reason the Microsoft developers worsened the situation by neglecting context menu error trapping code when developing Windows 8 File Explorer.

THE RECOMMENDED METHOD TO USE SHELLEXVIEW:
So, how should you go about using ShellExView to resolve your difficulties? While some other people have discussed the use of ShellExView, generally they’ve omitted usage details (see this case).
When I ran ShellExView on my Windows 8 system I got the following listing. Note that it’s best to sort the entries by vendor name (Company), and I’ve highlighted the Microsoft section in yellow. This is the start of the list (T represents “Top”):

image

After scrolling down a long way in ShellExView, here are the last few Microsoft entries and the remainder of the non-Microsoft entries (B represents “Bottom”):

SNAGHTML2cd4f207

It’s a reasonable assumption that it is highly unlikely that the faulty shell extension will be contributed by Microsoft, so let’s ignore the central yellow section of the list.

Adopt a binary search type of approach. Firstly, select all of the entries bottom entries (B) and disable them via the context menu of ShellExView (click “Disable Selected Items” or press the F7 key).
Now focus on the section of the list (T). Disable each of them one at a time, and see if the fault that you’re testing remains or not (in my case, see if Windows File Explorer crashes silently).

As mentioned earlier, this sort of testing can be a laborious process. So if the top section (T) contains too many entries, consider using the binary search approach on it by disabling half of these and checking the other half one at a time.

If none of the top entries seem to be causing the problem, re-enable them and move down to the bottom section (B) of ShellExView, where you carry out the same binary search approach:

image

It was here that I discovered that when I disabled the Spybot-S&D Explorer Integration the problem went away. Relief at last, like as if I’d stopped hitting myself on the head with a hammer!
The final task was, naturally, to double-check that this is the only disabled shell extension and that all the others were enabled.

So there you are,  job done: a methodology for you to follow when you’re faced with this sort of problem. I hope that it’s one you can use effectively, and avoid losing as many hours as I did when solving this issue.

And of course, some faulty shell extension code that Safer-Networking Ltd has to fix in Spybot - Search & Destroy.

UPDATE (25 April 2013):
Their support team just advised me that this is a known problem with Search & Destroy version 2, here is their forum post about it:
You do not need to uninstall Spybot 2, you can simply disable the feature that is causing the issue. Please run the Start Center, switch to advanced mode and start Settings.
Now open the tab "System Integration“. Here you can uninstall "Windows Explorer integration“. Click "Apply“ and "OK“ afterwards. Settings can also be launched via SDTray (the small Spybot 2 icon beside your systems clock in the taskbar).
Making use of ShellExView was the only way that I eventually determined what the cause of the problem was. Because of the nature of this crash I didn’t have a clue that it was a Spybot issue, so didn’t ever even think to check on this particular support forum.


UPDATE (05 November 2016):
 My system recently got infected with one of those annoying adware nasties that causes annoying advertising in new web pages that open unexpectedly when you click on a spot in a perfectly normal web page.

I tried several tools that made an effort to remove adware like this, and while they did find various other unwanted PUPs (potentially unwanted programs) none of them found whatever browser extension was displaying those irritating advertising pages.

So I installed Spybot again -- luckily, hadn't needed it for several years -- and it seems to have rooted out the cause of my woes, which was a nasty called Mindspark.

Would you believe it? ... Even after more than three years the above bug in Spybot is still there! Are the people at Safer Networking doing anything these days? Anyway, here's a screenshot of the setting used to uninstall the shell extension causing the problem (and now, three years later, it's happening with Windows 10):

Thinking ahead about your next PC?

 

This is how we thought ahead, back then.

You read it right … All for $5995!

Thursday, April 18, 2013

How to access the elusive Live Chat service of Skype Premium

It can be extremely difficult to find things on Skype’s website. It might have improved somewhat since the Microsoft acquisition, there still are some quite poor usability matters on the site.

PROBLEM BACKGROUND:
What drove me to try using the Live Chat service offered by Skype to its Skype Premium subscribers? Well, it was Windows Update when it recently prompted me to upgrade Skype (to version 6.3, from version 5.11 which was working perfectly). I’m running Windows 8 Pro, which might or might not be relevant, but following this Skype upgrade every time that Skype began its login process Windows became totally useless. The Windows hourglass stayed on permanently, I couldn’t even do the usual thing of launching Task Manager to kill the errant Skype process. Windows 8 had effectively become unusable. My only option was to press the computer’s reset button and a restart of Windows.

(An aside: I couldn’t even open msconfig to configure booting into Safe Mode, the miserably dopey new method needed to activate Safe Mode foist upon us by Microsoft. See here for some articles about this change in Windows 8.)

I was now stuck. Skype was always attempting a login very soon after each reboot, each time causing Windows to lock up completely. But fortunately I got out of this loop by the skin of my teeth, managing after a number of attempts to open Programs and Features quickly enough after a reboot to be able to uninstall Skype 6.3 before it locked up the system.

Phew! No need to do a complete restore of Windows from backup, which seemed to be the only other option. After this lucky escape, I decided to try  using Skype’s “live chat” function – available only to subscribers to the Skype Premium service -- to obtain technical support for this Windows 8 lockup problem. Then I discovered that getting to use Live Chat is a problem in itself.

I wasn’t alone in this, others had encountered the same problem. See their forlorn attempts such as here (“Premium  provides Chat service, but I cannot find the link to Chat service.  Can someone help?”) and here. The latter has the sort of plain guidance that really ought to be on the main Skype Premium page rather than hidden away in the depths of the community forum.

There is no obvious, easy-to-notice direct link to Live Chat. You can only make your way to it in a round-about non-unintuitive way. (Another website navigation design FAIL for Skype, I’ve discussed others previously.)

In the meantime, to help others here’s my illustrated summary of the pathway.

STEP 1
Log in to your Skype Premium account and go to the Skype support area at https://support.skype.com/

This page certainly should have an immediately apparent link and/or button labeled “Live Chat for Skype Premium subscribers” or similar wording.

STEP 2
Ask a pertinent question about your current problem. My question was “Windows 8 freezes after upgrade to Skype 6.3” (click the images for an enlargement):

image

STEP 3
Investigate the possible solutions provided. If these don’t resolve your problem, then click on the Get more help link in the right-hand column:

image

STEP 4

Possible solution(s) for your problem get listed at the bottom of the web page:

image

STEP 5
At last we arrive at the spot where we can invoke Skype Premium’s live chat service, so click the “Start a chat” button:

image

STEP 6
Wait a while for the Live Chat session to start (in a new browser window or tab).

Choose a general topic (in the left dropdown list) and a specific problem type (in the right dropdown list), the click the START CHAT button in the left bottom corner:

SNAGHTML21a78d51

And after a short wait away you go! (This service for Skype Premium subscribers is stated to be available 24/7.)

And now I’m going to commence a second chat to discuss my disconcerting Windows 8 total lockup problems. I’m interested to find out how Skype will be able to solve this, since Windows 8 becomes completely unusable when Skype 6.3 attempts to sign in, meaning that it becomes completely impossible for me to carry out any of the Windows actions  that they’ve so far suggested.

… And it’s really nice to use this Live Chat service, taking minutes rather than days (or even weeks) to get support from Skype! So this service is great, but it’s unfortunate how difficult it can be for a user to discover how to get to it.

The new suggestion is to try installing a version of Skype earlier than 6.3 (such as 6.2 or even 6.1) – which I might try, at my leisure.

An irksome issue is that Windows Update keeps on prompting me to upgrade Skype (currently meaning an upgrade to version 6.3 with all that this implies for me). Even though I’ve turned off automatic updates inside Skype itself, Windows Update is ignoring this setting and keeps prompting for the upgrade.

Wednesday, March 20, 2013

IBM Notes 8.5.3 pre-loader problem (might be a Windows 8 issue)


After I upgraded from Windows 7 Ultimate to Windows 8 Pro (both 64-bit), I found that one of the few programs that had some issues – minor ones -- was IBM Notes 8.5.3 so I had to carry out a reinstallation.

As before, I selected the time-saving option to launch the Notes pre-loader;

image

This had never caused me any problems before, but after the reinstallation I now always get an annoying dialog box following Windows boot-up:

image

If I click the OK button the dialog reappears immediately, so I have to open Windows Task manager and kill the Notes pre-loader service task:

image

I’ve tried repairing and also uninstalling then reinstalling Notes, and even without selecting to install this option can’t get rid of this annoyance.

Does anybody out there know what I should do? I didn’t ever have the problem with Windows 7, so could it be due to my using Windows 8? … Any ideas appreciated!

Monday, March 04, 2013

Telework, or Telewonk?


To be honest I misspelled "’Telewonk’ deliberately, in order to go easy on some peoples’ sensibilities. Replace the letter “o” in this with the first letter in the alphabet to get my true intent!

This question was raised in my noggin upon reading the Network World article: Is Yahoo's telework ban shortsighted or savvy? Data says both (there's plenty of research to support telecommuting advocates and naysayers alike).

I found it a very interesting article indeed, as I’m confident you will. There are thought-provoking arguments put forward on both sides.

These days my home and my office are the same, so you could say that I;m in a constant state of teleworking, It’s a lifestyle choice, and a stage of life choice. I’m my own employer, and even for me there are pros and cons.

The IBM that I worked for, over decades starting 1970, I’m sure uses a large degree of teleworking. I wonder what current IBM employees (and IBM management, right to the top) think of their current work patterns.

What do all of you out there think of the way you work, is it effective or just a “wonk”?
image

Saturday, February 23, 2013

A battle to find a peaceful place on the globe – the Conflict History database


It’s a battle to keep up with all the information available on the fabulous World Wide Web.

There’s so much out there on innumerable web sites and blogs that every now and then you come across fascinating information only by chance. Indeed the StumbleUpon site is built on this very aspect.

A site that I’ve just stumbled upon all by myself is CONFLICT HISTORY where you can browse the time of wars and conflicts across the globe.

It’s based on Google Maps and there’s a slider at the bottom where you select a particular time period. You can expand/collapse a table in the top left, and use this table to provide a link to each war or battle (and there’s a Wikipedia cross reference for each).

For example, the period 1995 – 2002 looks like this, with a link showing for the 2000 UEFA Cup Final riots:

image

Yes, all sorts of events have been selected as conflicts, which adds to the fascination. In the above example, also included is an accumulation of places on Earth that I previously browsed, fortunately they didn’t all apply to the 1995 – 2002 time period!

It’s a sad indictment on mankind that there’s nary a time period nor place on the globe which is (or has been, at some point in history) free of conflict.

UPDATE:
The site is working at the moment (23 February 2013). Just ignore the initial message and close the black dialog box:

image

Friday, February 22, 2013

Missed software opportunities #001 – Microsoft Windows 8 Task Manager

The first of an occasional series of opinion pieces about poorly executed software design and development, missed opportunities to do a lot better.

Since I’m still coming to terms with Windows 8 after upgrading from Windows 7 a month ago, why not start here?

Microsoft reworked the Windows Task Manager, which had remained largely the same from Windows 95 onwards, as described by the now ex-Microsoft Steven Sinofsky at The Windows Task Manager in the Building Windows 8 blog.

Their reasons for change all make sense, lots of telemetry and so on. Except in typical Microsoft fashion they weren’t thorough enough in their implementation and stopped short in some important aspects.

One of these is shown in the following screenshot of the “Processes” view:

image
(Click to view larger image)

It focuses on Avant Browser (in many ways superior to Internet Explorer) with multiple tabs open. Notice the large blank area (blue rectangle)? In this area they really should have taken the opportunity to list the detailed usage of CPU, Memory, Network and Disk  for each of the browser tabs (sub-tasks) open in the browser.

This would be extremely valuable information to present, such as the fairly common situation where one of the tabs is chewing up a lot more resources than the others and you’re struggling to understand which of the tabs is the one causing the browser to run slowly or erratically.

Another lost opportunity is that the tabs across the top of the Task Manager window are fixed in position. They really should have made the tabs draggable so that you can rearrange them to suit your needs, and the last-used arrangement remembered when Task Manager is next opened.

In a month or so of intense Windows 8 usage I find myself still using the good old Details tab a lot because it shows tasks that don’t appear in the Processes view, and I want it on the left.. I Want it to be the default whenever Task Manager is opened, but alas the Processes tab always opens on the left and the last-used view of Task Manager if not remembered.

Curse them! There are some really smart people at Microsoft. Why do they come out with such stupid implementations? A big FAIL for their design-by-committee approach, I ‘d say.

Sunday, February 17, 2013

Do husbands and wives ever fully understand each other?


Now that really is a basic question!

Thanks to Scott Hilburn’s “Wife of Pi” comic of 08 February 2013 for leading me to ponder this most problematic of matters:

More of his works at The Argyle Sweater.

Monday, February 11, 2013

Is perfection achievable?

That’s a pretty decent ‘basic question’ is it not?

I got to thinking about it after coming across the following article:
Don’t Let Perfection Be a Barrier to Improvement

If you know of something that can be done to make a process better and you intentionally choose to leave the issue unresolved, you are violating the principle of zero defects. But if you overspend your resources for a small gain when there is a bigger gain available somewhere else, your actions violate the ‘better, not perfect’ principle.

So, which is right?

I suggest that you read this short article too, including the comments.