代码之家  ›  专栏  ›  技术社区  ›  TK.

c windows“open with>”上下文菜单行为[重复]

  •  7
  • TK.  · 技术社区  · 15 年前

    可能重复:
    Filetype association with application (C#)

    我正在编写一个C Windows应用程序来可视化和修改“.build”文件(nant脚本)。我希望用户能够右键单击Windows资源管理器中的.build文件,然后选择“用>打开”选项,以允许在我的应用程序中修改该文件。

    为了使用这个机制,我的程序需要支持什么? 我的程序需要对Windows做什么才能启用上下文菜单支持?

    我想知道是否有人能为我指出一篇关于这个主题的好文章/教程的方向。

    2 回复  |  直到 15 年前
        1
  •  4
  •   Community Mohan Dere    9 年前

    open with命令只是将文件的路径作为第一个参数传递给应用程序,因此您所需要做的就是

    public static void Main(string[] args)
    {
        if(args[0] != null)
        {
           //args[0] contans a path to the file do whatever you need to do to display it
        }
        else
        {
           //Start normally
        }
    }
    

    要自动打开程序,需要在其中添加一些注册表项。 HKEY_CLASSES_ROOT\YOUR_EXT\ . Here is a SO answer 说怎么做

    或者你可以用普通的方法手工把它添加到打开的列表中。

        2
  •  2
  •   KeithS    15 年前

    看看这篇博文: Shell Extensions - Context Menu . 它有一个简单的“包装器”代码,可以连接到一些COM钩子和WindowsShell上下文菜单。把它放在GAC中,当您右键单击时,您的菜单将作为右键单击上下文菜单的子菜单包括进来。

    只要严格使用“打开方式…”使您的应用程序只出现在它可以打开的文件中,这就简单了一点。这些由Windows在注册表中的两个位置使用注册表项进行管理:

    1. hkey_current_user\software\microsoft\windows\currentversion\explorer\fileexts \.fileextension\openwithlist(为当前用户安装)
    2. hkey_classes_root\.fileextension\openwithlist(为所有用户安装)

    使用regedit查看一些现有的,然后使用registry类为您想要的扩展名创建一个新的键。

    推荐文章