将上下文菜单添加到 IE 以执行我的程序

Adding context menu to IE to execute my program

我想知道如何将新项目添加到 IE 上下文菜单(右键单击菜单),以便复制从网站中选择的文本,打开我的 winform 应用程序 C# 并将文本粘贴到我的应用程序中的文本框。

您可以在 IE 标准上下文菜单中添加一个条目来打开您的程序。为此,请按照下列步骤操作:

  1. 打开注册表并转到:

    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt
    
  2. 创建一个新的key,将key的名称设置为你想要在上下文菜单中显示的文本作为名称,例如:Open My App

  3. 右键单击 (Default) 并选择 Modify... 并将值设置为 html 文件的路径,该文件将包含打开应用程序的命令。例如:C:\OpenMyApp.html

  4. 添加一个名为 Context 的新 DWORD 值并将其值设置为十六进制 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() 来处理命令行参数。然后将参数传递给您的表单并将其显示在您的文本框中就足够了。

更多信息: