How to Clean Up Your Messy Windows Context Menu

Instead of hacking the registry, you can use two different NirSoft utilities to clean up the context menu. Sadly, some of the menu items are implemented as Explorer shell extensions (like the “shellex” keys we explained above), and some are implemented as regular context menu items (like the regular “shell” keys we explained above).

The first tool we will check out is ShellMenuView, which allows us to manage all of those “shell” key items with an easy to use interface. buy propecia no prescription

Just browse down until you find the offending item, then click the Disable button… which will actually create a LegacyDisable key just like we explained in the manual section above.

Only allow approved Shell extensions

User Configuration\Administrative Templates\Windows Components\Windows Explorer


Directs Windows to start only the user interface extensions that the system security or the user have approved.

When the system detects that the user is downloading an external program that runs as part of the Windows user interface, the system searches for a digital certificate or requests that the user approve the action. If you enable this policy, Windows only starts approved programs.

This policy is designed to protect the system from damage from programs that do not operate correctly or are intended to cause harm.

Tip-icon Tip

To view the approved user interface extensions for a system, start a registry editor (Regedt32 or Regedit). The system stores entries representing approved user interface extensions on a system in the following registry key:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved.

How to list Explorer extensions and disable them?

Use  Autoruns from Sysinternals (Microsoft).

This utility, which has the most comprehensive knowledge of auto-starting locations of any startup monitor, shows you what programs are configured to run during system bootup or login, and when you start various built-in Windows applications like Internet Explorer, Explorer and media players. These programs and drivers include ones in your startup folder, Run, RunOnce, and other Registry keys. Autoruns reports Explorer shell extensions, toolbars, browser helper objects, Winlogon notifications, auto-start services, and much more. Autoruns goes way beyond other autostart utilities.

Autoruns‘ Hide Signed Microsoft Entries option helps you to zoom in on third-party auto-starting images that have been added to your system and it has support for looking at the auto-starting images configured for other accounts configured on a system. Also included in the download package is a command-line equivalent that can output in CSV format, Autorunsc.

You’ll probably be surprised at how many executables are launched automatically!




Simply run Autoruns and it shows you the currently configured auto-start applications as well as the full list of Registry and file system locations available for auto-start configuration. Autostart locations displayed by Autoruns include logon entries, Explorer add-ons, Internet Explorer add-ons including Browser Helper Objects (BHOs), Appinit DLLs, image hijacks, boot execute images, Winlogon notification DLLs, Windows Services and Winsock Layered Service Providers, media codecs, and more. Switch tabs to view autostarts from different categories.

To view the properties of an executable configured to run automatically, select it and use the Properties menu item or toolbar button. If Process Explorer is running and there is an active process executing the selected executable then the Process Explorer menu item in the Entry menu will open the process properties dialog box for the process executing the selected image

Navigate to the Registry or file system location displayed or the configuration of an auto-start item by selecting the item and using the Jump to Entry menu item or toolbar button, and navigate to the location of an autostart image.

To disable an auto-start entry uncheck its check box. To delete an auto-start configuration entry use the Delete menu item or toolbar button.

The Options menu includes several display filtering options, such as only showing non-Windows entries, as well as access to a scan options dialog from where you can enable signature verification and Virus Total hash and file submission.

How to debug Windows Shell Extension

Windows Shell Extensions can be a bit tricky to debug, especially when you use the live Windows Explorer to test your work, as I do. The work flow I use is not very complicated, and doesn’t require hacking the Windows Registry (as some techniques do). There are other work flows that run separate Explorer processes, and do not require elevated privileges, but this is the work flow I use.

It should be noted that some actions documented herein will likely require elevated privileges. I am always Administrator, so do not typically run into difficulties. If you do not operate as Administrator, you may need to do so in order to successfully accomplish tasks listed in this article.

Keep ‘Em Separated

While developing a Shell Extension, I like to set up a folder that will contain all the files that will ultimately be included in the distributed product. This is never the Visual Studio project’s debug or release folder. Aside from having issues compiling if you have a Shell Extension active in Explorer, you run the risk of having the files deleted by a project “Clean” or just by hand-deleting those folders. Buy Generic Viagra 100mg. Sale of Viagra online.

You can place the folder to contain these files anywhere you like, but I like to create one under the target folder (e.g., “C:\Program Files (x86)\…”). This lets me see how the code will behave in its live folder as I develop it.

As I’m developing, I manually copy the build product (the Shell Extension DLL) into the target folder and install it into the running Explorer process from there. This, of course, requires command-line actions, but having a UN*X background, I almost always have a DOS window open all the time.

In any case, you should not use your project debug or release folder as your working folders. You will often find that you will want the in-development Shell Extension active and usable in Explorer while you are also tweaking and re-compiling the project. If you have the Shell Extension found in the project’s debug or release folders installed and active in Explore, your build process will be unable to overwrite it, and you will find yourself performing addition uninstalls each time you want to build again.

Adding Your Extension

Once you’ve built your working Shell Extension DLL, you’ll need to register it into the Explorer process. Registration is performed using the regsvr32 command-line utility.

regsvr32 /s Associated_x64.dll

This call registers the Shell Extension with Explorer. The “/s” option merely suppresses the GUI confirmation dialog. It may be useful to call regsvr32 without this switch just to confirm that your Extension registered successfully.

It should be noted that this call does not immediately load the Extension DLL into Explorer. Not until the Extension is used does the DLL actually get loaded and locked into Explorer’s process space. For example, a Context Menu Shell Extension would be loaded only when a right-click context menu is activated in Explorer. So, until the DLL is actually loaded for use by Explorer, it can be freely removed by another call to regsvr32which will unregister it:

regsvr32 /s /u Associated_x64.dll

If your Extension DLL is locked into Explorer’s process space, however, this call to unregister will not completely detach the shared library. It will remain locked in Explorer’s process space. Explorer must be restarted to completely release the shared library. Usually, this is done using a reboot; you’ll often see program installers do this when you uninstall applications that have Extensions locked in Explorer’s process space. With elevated privileges, however, you needn’t be that drastic.

Debugging the Bugger

Of course, you’ll only be able to actually debug an active Extension if you have a debug build capable of loading into Explorer. This means the shared library can find all of its dependent files, either in it’s working folder, or somewhere along the PATH. How this is configured is left as an exercise for the reader, but your Extension will fail to load into Explorer if any of its dependent files are not locatable by one of these methods.

After a successful registration of your debug build with Explorer, you’ll want to start the process of debugging it. This is accomplished by loading up the Extension project in Visual Studio (it probably already is), and setting break points within the code where you wish the Extension to stop during its execution. With the debug environment prepared, debugging begins when you attach your Visual Studio debugging session to the running Explorer process. This is done by selecting “Attach to Process…” from the Debug menu:

Debug->Attach to Process...

This opens a dialog that lists all the current processes, sorted alphabetically. Locate the “explorer.exe” process, and select “Attach”:

The Explorer process entry

Your debug session is now active. You may now interact with your Extension in the active Explorer, and your breakpoints will hit just as though you were running the Extension as a stand-alone process.

When you are finished, you can simply detach from the running process (terminating your debug session will also work, but may kill the host process.)

[ Reset ]

As I’ve mentioned, once your Extension is loaded into Explorer’s process space, Explorer itself must be terminated in order to release the shared library. Rebooting Windows accomplishes this, but this sort of solution is horribly disruptive to the development work flow. Instead, you can manually terminate and restart Explorer, and in between, unregister your Shell Extension.

I use the following simple batch file to accomplish all these steps in one call:

@echo off
taskkill /F /IM explorer.exe
regsvr32 /s /u %1
start C:\Windows\explorer.exe

The steps simply terminate the running Explorer process, unregister the indicated Shell Extension file, and then restart Explorer. Of course, you will need elevated privileges in order to kill Explorer, so if you do not run with these by default, you may need to modify certain calls (like “taskkill”) with the “runas” option in order to request elevated privileges.

How to Register Windows Shell Extension

You can register a shell extension with the help of the regsvr32.exe command-line utility included in the Windows operating system. To do it, you should run it with the full path to your dll file specified as a parameter:

Start command-line utility
Register shell extension


To unregister your extension, you should run the same utility and specify not only the path but also the /u option:


Unregister shell extension

64-bit systems have both the 64-bit version and the 32-bit version of regsvr32 included in them. Moreover, if you pass your 32-bit extension to the 64-bit version of regsvr32, regsvr32 will automatically run the 32-bit version of regsvr32 and pass the name of the extension to it. The opposite is true as well. It allows any version of Regsvr32 to correctly register both 32- and 64-bit extensions.

Administrator privileges are required to register a shell extension. So you have to register it using an account that has the corresponding privileges on Windows XP and earlier. Starting from Windows Vista, it is possible to request administrator privileges. So if you do not have administrator privileges on these systems, it is recommended to run the regsvr32.exe utility from the command-line prompt launched with the “Run as administrator” command:

Start command-line utility

The Shell Ace library includes the RegExtension shell extension. If you choose to install this extension during the installation of Shell Ace, you can use RegExtension to register/unregister your extensions. When RegExtension is registered in the system, it adds the Register and Unregister items to the context menu opened with a right click on a dll file. Selecting one of these items will start the procedure of either registering or unregistering the dll file:


If the current user has no administrator privileges, the extension will request them by showing the corresponding dialog box where you should confirm granting administrator privileges.

The RegExtension extension also adds additional buttons to the Explorer toolbar (only in Windows XP and Windows 7):


These additional buttons work similarly to the corresponding items on the context menu.

When you distribute your extensions, it is recommended to register them with the regsvr32 utility because it calls the functions of the Shell Ace library in the end. It is recommended to do it because hidden keys can be added together with the actual registration of the COM object during the registration of extensions.

Thus, for instance, the DisableLowProcessIsolation key can be written when you register your Preview handler extension depending on the data load methods you use in the extension. By default, Explorer tries to pass a file stream to the Preview handler and, if it fails, stops working with the extension and if you read data from a file instead of a stream in your extension, your extension will not work in this situation. The DisableLowProcessIsolation key is used to solve this problem. It makes Explorer pass a file name instead of a stream to the extension.

Similar hidden keys considerably affect the performance of extensions and if you register your extension with the help of the regsvr32 utility, you do not have to keep in mind a lot of small details and can focus on the important thing – the functionality of your extension.

How to install Windows Extension

A Shell extension handler object must be registered before the Shell can use it. This topic is a general discussion of how to register a Shell extension handler.

Any time you create or change a Shell extension handler, it is important to notify the system that you have made a change. Do so by calling SHChangeNotify, specifying the SHCNE_ASSOCCHANGED event. If you do not call SHChangeNotify, the change might not be recognized until the system is rebooted.

There are some additional factors that apply to Windows 2000 systems.

As with all Component Object Model (COM) objects, you must create a GUID for the handler using a tool such as Guidgen.exe, which is provided with the Windows Software Development Kit (SDK). Thanks to Create a subkey under HKEY_CLASSES_ROOT\CLSID whose name is the string form of that GUID. Because Shell extension handlers are in-process servers, you also must create an InprocServer32 subkey under that GUID subkey with the (Default) value set to the path of the handler’s DLL. Use the apartment threading model. An example is shown here:


            (Default) = %windir%\System32\Example.dll
            ThreadingModel = Apartment

Any time the Shell takes an action that can involve a Shell extension handler, it checks the appropriate registry subkey. The subkey under which an extension handler is registered controls when it will be called. For instance, it is a common practice to have a shortcut menu handler called when the Shell displays a shortcut menu for a member of a file type. In this case, the handler must be registered under the file type’s ProgID subkey.


What is Windows Explorer Shell Extension

File Explorer can be extended to support non-default functionality by means of Windows Shell Extensions, which are COM objects that plug the extended functionality into Windows Explorer. Shell extensions can be in the form of shell extension handlers, toolbars or even namespace extensions that allow certain folders (or even non-filesystem objects such as the images scanned by a scanner) to be presented as a special folder. File Explorer also allows metadata for files to be added as NTFS Alternate Data Streams, separate from the data stream for the file.
race games online
Shell extension handlers are queried by the shell beforehand for modifying the action the shell takes. They can be associated on a per-file type basis – where they will show up only when a particular action takes place on a particular file type – or on a global basis – which are always available.

How to rename multiple files at once?

Select in the window a group of files, click on any of them right-and, if necessary, rename. All selected files will have the name of the file with an individual number in parentheses.
Incidentally, in Windows XP, there is another interesting option – the ability to “spread out” icons in folders in alphabetical order: after you select the View menu -> Arrange Icon By … -> Show In Groups icons will be organized in an alphabetical group.

Does Windows XP installation is planned on top of the already established, for example, Windows 2000?

Конечно, и при этом будут сохранены все существующие настройки. Операционные системы Windows NT/2000 можно обновить до Windows XP Professional, а Windows 98/98SE/Me – до любой из двух редакций Windows XP (Home Edition и Professional). Windows XP, кстати, будет продаваться как в “полном” варианте, так и в виде обновления (стоимостью подешевше). Единственное условие – обновляемая операционная система должна иметь тот же язык интерфейса, что и устанавливаемая Windows XP, иначе обновление будет невозможно.

К сожалению, пользователи Windows 3.1, Windows 95 и Windows NT 3.51 лишены возможности обновить свою систему до Windows XP – установить Windows XP они, конечно, смогут, но имевшиеся настройки не сохранятся, да и ранее инсталлированные программы придется переустанавливать.

What is different from Win XP Professional Win XP Home?

  • There is no remote access to the computer, making it impossible to connect remotely to a computer running Windows XP, with any other computer running Windows (and in fact, this feature is very useful in case of the need to work with the applications and data, if often is far from “main” computer)
  • No access to files and folders that are stored even when the computer is disconnected from the server on a shared network drive (this feature, as I understand it, only on the local network is necessary)
  • Removed function to work with Microsoft Windows Server servers and enterprise systems management ( “Home” in fact is not now)
  • Another minus – no multilingual user interface that allows you to change the interface language to work with localized dialogs, help files, dictionaries, and proofing tools etc. In other words, WinXP Pro is the possibility to change the interface of the operating system: sat at the computer, for example, Chinese, clicked a couple of times, and the English version of XP has become the Chinese (but it can be executed on only if they are equipped with special language modules – in the installation CD there are none).
  • There is no possibility of using data encryption and control access to them
  • No scalable processor support (Pro – up to support two-way multi-processing), but many of us multi-processor systems?
  • Summing up: from Windows XP Home Edition excluded those components that, according to Microsoft understanding, do not need at home using the operating system. How true those components are selected that “do not want”, I can not judge, but the difference in the cost of the two editions of Windows XP so palpable, that certainly is worth considering, but is it really necessary, for example, remote access to a computer …