文件名是右键菜单中的c ++输入

时间:2013-01-15 22:25:06

标签: c++ windows windows-8 windows-xp

我正在尝试使用c ++编写程序,在选择文件时添加指向右键菜单的链接,当用户点击它时,程序将打开,我希望输入是文件名。 例如我在桌面上有text.cpp,我右键单击它,然后有一个名为“识别此文件”的选项,然后用户选择程序将启动。 我也想将文件名作为变量自动输入,例如Sfilename值将成为test.cpp!

我不是专业人士,请用简单的语言解释,因为我搜索了很多,但我发现的只是一堆我不理解的解释。

我的操作系统是WIndows 8,我想让它只能在Windows上运行!

2 个答案:

答案 0 :(得分:4)

要使用特定文件扩展名将应用程序添加到文件的弹出菜单中,您可以执行以下操作:

  1. 打开/创建以下注册表项:

    <root>\Software\Classes\<ext>
    

    如果您希望菜单项仅针对主叫用户显示,<root>HKEY_CURRENT_USERHKEY_LOCAL_MACHINE如果您希望所有用户都显示该<ext>.cpp是所需的文件扩展名(在本例中为(Default))。

  2. 阅读<root>\Software\Classes\<progid>\Shell\<verb> 值。如果它不存在,请将其设置为您选择的值。

  3. 打开/创建以下注册表项:

    <progid>

    <verb>是在步骤#2中读取的值,而OpenWithMyApp是您为应用选择的唯一值,例如:(Default)

  4. 将其Open with my app值设置为菜单项的描述,例如:<root>\Software\Classes\<progid>\Shell\<verb>\command

  5. 创建以下注册表项:

    (Default)
  6. 将其%1值设置为您要执行的完整路径和命令行,其中"c:\path to\myapp.exe" "%1"位于您希望所选文件显示的位置,例如:{{1 }}

  7. 因此,例如,它看起来像这样的结构:

    HKEY_CURRENT_USER
      Software
        Classes
          .cpp
            (Default) = "CppFile"
          CppFile
            Shell
              OpenWithMyApp
                (Default) = "Open with my app"
                command
                  (Default) = ""c:\path to\myapp.exe" "%1""
    

    有关详细信息,请参阅MSDN:

    File Types

答案 1 :(得分:3)

这不是一个初学者话题,你问题的措辞告诉我你刚开始使用Windows编程。有a starting point on MSDN可以帮到你。您不仅可以通过Google获取代码,还必须了解Windows的工作原理。具体来说,您必须了解Shell,Windows的各个部分的名称,使它们以他们的方式工作。当有人双击.docx文件并加载Word时,这是因为Word将自己注册为该扩展的处理程序。当有人右键单击任何文件并出现“添加到zip文件”(或类似的东西)时,这是因为WinZip向Shell注册以添加该动词。你需要掌握这些东西是什么:

  • the Shell
  • 一个文件扩展名(它不仅仅是“点后的字母”,它是一堆注册表条目,它们将这些字母与点后的应用相关联)
  • 扩展程序的注册处理程序
  • 动词(壳牌)

从我给你的MSDN主题页面链接的文章将教你如何知道。但这并不简单。即使只是知道这些单词也会有助于您的搜索。还有some samples可用,但不要尝试从那些开始:首先阅读背景。