Как да използвате персонализирани Internet Explorer контекстно меню за отваряне на изображение в нов раздел


ВЪВЕДЕНИЕ


Пример показва как да отворите изображение в нов раздел с помощта на персонализирани Internet Explorer контекстно меню. Този пример включва следните функции:
  • Добавя записи на Internet Explorer стандартен контекстното меню.
  • Замествастандартен контекстно меню за Internet Explorer с помощта на помощни обекти на браузъра.
  • Разполагането на потребителски Internet Explorer контекстно меню
Забележки
  • Internet Explorer 8 позволява на нов подход, който се нарича ускорител или дейност, за да добавите елемент към контекстно меню за Internet Explorer. Новият подход е по-лесно да използвате ускорители, за да копирате информация от една страница в друга. Обаче добавянето на записите в Internet Explorer стандартен контекстно меню все още е добър подход да работят локално.
  • Ако пренебрегнете Internet Explorer стандартен контекстното меню в Browser Helper Object (BHO), използвайте една добавка приложение едновременно да игнорирате IDocHostUIHandler интерфейс. Ако използвате няколко приложения на добавката, добавката приложения лесно да конфликт един с друг. Можете да създадете потребителски уеб браузър да зададете IDocHostUIHandler интерфейс.
  • Internet Explorer конфигуриране за повишена защита (IE ESC) е разрешена по подразбиране на Windows Server 2008 или Windows Server 2008 R2. Следователно Internet Explorer не може да зареди разширения. Забележка Трябва ръчно да забраните настройката на IE ESC.

Ниво на сложност

Информация за изтегляне

За да изтеглите този примерен код, щракнете върху една от следните връзки:

Технически преглед

За да използвате персонализирани Internet Explorer контекстно меню да отворите изображение в нов раздел, изпълнете следните стъпки:
  1. Добавяне на записи на Internet Explorer стандартен контекстното меню. За да добавите запис на Internet Explorer стандартен контекстното меню, трябва да добавите ключ под следния запис в системния регистър: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Забележка по подразбиране стойността на ключа е пътят на html файл Това обработва събитието. Клас OpenImageMenuExt предоставя два метода за добавяне и премахване на записи в системния регистър. Освен това можете да използвате Resource.htm или OpenImage.htm html страница мога да отворите изображение в нов раздел:
    private const string IEMenuExtRegistryKey =            "Software\\Microsoft\\Internet Explorer\\MenuExt";         public static void RegisterMenuExt()        {             // If the key exists, CreateSubKey will open it.            RegistryKey ieMenuExtKey = Registry.CurrentUser.CreateSubKey(                IEMenuExtRegistryKey + "\\Open image in new tab");              // Get the path of Resource\OpenImage.htm.            FileInfo fileIofo = new FileInfo(Assembly.GetExecutingAssembly().Location);            string path = fileIofo.Directory.FullName + "\\Resource\\OpenImage.htm";             // Set the default value of the key to the path.            ieMenuExtKey.SetValue(string.Empty, path);             // Set the value of Name.            ieMenuExtKey.SetValue("Name", "Open_Image");             // Set the value of Contexts to indicate which contexts your entry should            // appear in the standard context menu by using a bit mask consisting of            // the logical OR of the following values:            // Default 0x1             // Images 0x2             // Controls 0x4             // Tables 0x8             // Text selection 0x10             // Anchor 0x20             ieMenuExtKey.SetValue("Contexts", 0x2);             ieMenuExtKey.Close();        }
  2. Смяна на Internet Explorer стандартен контекстното меню чрез помощни обекти на браузъра. Клас OpenImageHandler реализира IDocHostUIHandler интерфейс и клас OpenImageHandler и замества по подразбиране контекстното меню. Класът OpenImageBHO е допълнителен обект за браузър, който задава penImageHandler класове UIHandler класа на html документ. За повече информация относно начините за създаване и разполагане на BHO вижте проба CS/VBBrowserHelperObject Microsoft всичко в едно код рамка.
    InternetExplorer explorer = pDisp as InternetExplorer;             // Set the handler of the document in InternetExplorer.            if (explorer != null)            {                NativeMethods.ICustomDoc customDoc = (NativeMethods.ICustomDoc)explorer.Document;                customDoc.SetUIHandler(openImageDocHostUIHandler);            } 
  3. Разполагане на менюто контекст заедно с инсталационния проект. За да разположите контекст менюто с инсталационния проект, изпълнете следните стъпки:
    1. Добавете installer клас (известен като CustomIEContextMenuInstaller в примерен код) за определяне на потребителски действия в CSCustomIEContextMenu настройка на проекта. Инсталаторът на клас произлиза от System.Configuration.Install.Installer клас. Примерен код използва действия по избор, за да добавяте и премахвате Internet Explorer контекстно меню записи в системния регистър. След това примерен код регистри или unregisters класовете COM-видими в текущия управлявани събрание, когато потребителят инсталира или деинсталира компонент.
      [RunInstaller(true), ComVisible(false)]    public partial class CustomIEContextMenuInstaller : System.Configuration.Install.Installer    {        public CustomIEContextMenuInstaller()        {            InitializeComponent();        }          public override void Install(System.Collections.IDictionary stateSaver)        {            base.Install(stateSaver);             OpenImageMenuExt.RegisterMenuExt();             RegistrationServices regsrv = new RegistrationServices();            if (!regsrv.RegisterAssembly(this.GetType().Assembly,            AssemblyRegistrationFlags.SetCodeBase))            {                throw new InstallException("Failed To Register for COM");            }        }         public override void Uninstall(System.Collections.IDictionary savedState)        {            base.Uninstall(savedState);             OpenImageMenuExt.UnRegisterMenuExt();             RegistrationServices regsrv = new RegistrationServices();            if (!regsrv.UnregisterAssembly(this.GetType().Assembly))            {                throw new InstallException("Failed To Unregister for COM");            }        }    }
    2. Създаване на инсталационния проект за инсталиране на Internet Explorer контекстното меню.
Забележка За повече информация как да създадете и разположите примерно приложение вижте файла Readme.txt, включен в пакет за изтегляне.

Технология за категория

Базата на Windows

Езици

Този примерен код се предлага на следните езици за програмиране:
ЕзикИме на проект
Visual C#CSCustomIEContextMenu
Visual Basic.NETVBCustomIEContextMenu

Препратки

За повече информация как да добавяте записи на стандартни контекстното меню посетете следния уеб сайт на MSDN:За повече информация относно контекстни менюта и разширения посетете следния уеб сайт на MSDN:За повече информация относно помощни обекти на браузъра посетете следния уеб сайт на MSDN:

Повече информация


Какво е всичко в едно код рамка?

Всичко в едно рамка код показва най-техники за развитие на Microsoft чрез примерен код в различни езици за програмиране. Всеки пример е внимателно избран съставен и документирани, за да покаже един общ код сценарий. За повече информация за всичко в едно код рамка посетете следния уеб сайт на Microsoft:

Как да намерите повече всичко в едно рамка код примери

За да намерите още всичко в едно рамка код проби, потърсете "kbcodefx" с ключови думи на Microsoft поддръжка уеб сайт. Или, посетете следния уеб сайт на Microsoft:
Бързо публикуване отказ от отговорност
Microsoft corporation и/или съответните й доставчици не дават гаранция за пригодността, надеждността или точността на информацията и свързаните графики, съдържащи се в нея. Тази информация и свързаните графики се предоставят "както са" без никакви гаранции. Microsoft и/или съответните й доставчици се отказват от всякакви гаранции и условия по отношение на тази информация и свързани с графики, включително всички подразбиращи се гаранции и условия за продаваемост, годност за определена цел, работно усилие, заглавие и ненарушаване. Специално Вие се съгласявате, че в никакъв случай Microsoft и/или неговите доставчици носи отговорност за преки, косвени, наказателни, случайни, специални, закономерни щети или вреди, каквато включително, без ограничение, обезщетение за загуба на употреба, данни или печалби, възникващи от или по някакъв начин свързани с използването или невъзможността да се използва информацията и свързаните графики, съдържащи се в нея, въз основа на договор, закононарушение, небрежност, обективна отговорност или по друг начин, дори ако Microsoft или от неговите доставчици не е уведомен за възможността за вреди.