Click here to Skip to main content
15,897,371 members
Articles / Desktop Programming / Win32

Creating and Installing Internet Explorer Context Menu using C#

Rate me:
Please Sign up or sign in to vote.
3.67/5 (8 votes)
9 Feb 2008CPOL2 min read 65.6K   1.4K   52  
Add an Internet Explorer context menu using an installer class
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using Microsoft.Win32;

namespace IEContextInstallerClass
{
    [RunInstaller(true)]
    public partial class IEInstaller : Installer
    {
        public IEInstaller()
        {
            InitializeComponent();
        }

        public override void Install(System.Collections.IDictionary stateSaver)
        {
            base.Install(stateSaver);
            //grab the target director and add to install.installstate
            stateSaver.Add("TargetDir", Context.Parameters["DP_TargetDir"].ToString());
        }
        public override void Commit(System.Collections.IDictionary savedState)
        {
            base.Commit(savedState);

            //adding items to the context menu of IE
            RegistryKey key;
            string keyValueInt = "16";
            string subKey = @"SOFTWARE\Microsoft\Internet Explorer\MenuExt\Sample Action";
            key = Registry.CurrentUser.CreateSubKey(subKey);
            key.SetValue("Contexts", Convert.ToInt32(keyValueInt), RegistryValueKind.DWord);
            key.SetValue(null, "file://" + savedState["TargetDir"].ToString() + "\\action.html");
            key.Close();
        }
        protected override void OnBeforeUninstall(System.Collections.IDictionary savedState)
        {
            base.OnBeforeUninstall(savedState);
            //removing items from the context menu of IE
            string subKey = @"SOFTWARE\Microsoft\Internet Explorer\MenuExt\Sample Action";
            Registry.CurrentUser.DeleteSubKey(subKey);
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Other Born Interactive
Saudi Arabia Saudi Arabia
Follow me: http://riadafyouni.blogspot.com

Comments and Discussions