2016-04-07 6 views
3

Я хотел бы знать, как добавить новый элемент в контекстное меню IE (меню правой кнопки мыши), чтобы отобранный текст с сайта был скопирован, открывается мое приложение winform C# и текст вставляется в текстовое поле в моем приложении.Добавление контекстного меню в IE для выполнения моей программы

ответ

4

Вы можете добавить запись в стандартное контекстное меню IE, чтобы открыть свою программу. Чтобы сделать это, выполните следующие действия:

  1. Открыть реестр и перейдите по ссылке:

    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt 
    
  2. Создать новый ключ и установить имя ключа текст, который вы хотите отображается в контекстном меню как имя, например: Open My App

  3. правой кнопкой мыши на (Default) и выберите Modify... и установите значение пути HTML-файл, который будет содержит команду, чтобы открыть приложение. Например: C:\OpenMyApp.html

  4. Добавить новое значение DWORD имени Context и установите его значение в шестнадцатеричные 11 или десятичную 17. Чтобы просмотреть другие возможности, нажмите documentation. Также в документах сказано добавить двоичный файл, но я попробовал DWORD вместо этого, и он сработал. Также другие расширения, которые я видел, используют DWORD.

  5. Используйте этот контент для вашего C:\OpenMyApp.html:

    <script type="text/javascript"> 
        function getSelectionText(w) { 
         var text = ""; 
         if (w.getSelection) { 
          text = w.getSelection().toString(); 
         } else if (w.document.selection && w.document.selection.type != "Control") { 
          text = w.document.selection.createRange().text; 
         } 
         return text; 
        } 
    
        var parentwin = external.menuArguments; 
        var selection = getSelectionText(parentwin); 
        var oShell = new ActiveXObject("Shell.Application"); 
        var commandtoRun = "C:\\MyApp.exe"; 
        oShell.ShellExecute(commandtoRun,"\""+selection+"\"","","open","1"); 
    </script> 
    
  6. Тогда достаточно, чтобы скопировать приложение C:\MyApp.exe. Ваше приложение должно обрабатывать аргументы командной строки, принимая string[] args в качестве входных параметров для точки ввода Main или используя Environment.GetCommandLineArgs(). Затем достаточно передать аргумент в вашу форму и показать его в текстовом поле.

Для получения дополнительной информации:

+0

работал! Большое спасибо. –

+0

Добро пожаловать :) –

+0

Я получаю сообщение об ошибке: У этого файла нет связанной с ним программы для выполнения этого действия – Graham