我正在尝试使用c ++编写程序,在选择文件时添加指向右键菜单的链接,当用户点击它时,程序将打开,我希望输入是文件名。 例如我在桌面上有text.cpp,我右键单击它,然后有一个名为“识别此文件”的选项,然后用户选择程序将启动。 我也想将文件名作为变量自动输入,例如Sfilename值将成为test.cpp!
我不是专业人士,请用简单的语言解释,因为我搜索了很多,但我发现的只是一堆我不理解的解释。
我的操作系统是WIndows 8,我想让它只能在Windows上运行!
答案 0 :(得分:4)
要使用特定文件扩展名将应用程序添加到文件的弹出菜单中,您可以执行以下操作:
打开/创建以下注册表项:
<root>\Software\Classes\<ext>
如果您希望菜单项仅针对主叫用户显示,<root>
为HKEY_CURRENT_USER
,HKEY_LOCAL_MACHINE
如果您希望所有用户都显示该<ext>
,.cpp
是所需的文件扩展名(在本例中为(Default)
)。
阅读<root>\Software\Classes\<progid>\Shell\<verb>
值。如果它不存在,请将其设置为您选择的值。
打开/创建以下注册表项:
<progid>
<verb>
是在步骤#2中读取的值,而OpenWithMyApp
是您为应用选择的唯一值,例如:(Default)
。
将其Open with my app
值设置为菜单项的描述,例如:<root>\Software\Classes\<progid>\Shell\<verb>\command
。
创建以下注册表项:
(Default)
将其%1
值设置为您要执行的完整路径和命令行,其中"c:\path to\myapp.exe" "%1"
位于您希望所选文件显示的位置,例如:{{1 }}
因此,例如,它看起来像这样的结构:
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:
答案 1 :(得分:3)
这不是一个初学者话题,你问题的措辞告诉我你刚开始使用Windows编程。有a starting point on MSDN可以帮到你。您不仅可以通过Google获取代码,还必须了解Windows的工作原理。具体来说,您必须了解Shell,Windows的各个部分的名称,使它们以他们的方式工作。当有人双击.docx文件并加载Word时,这是因为Word将自己注册为该扩展的处理程序。当有人右键单击任何文件并出现“添加到zip文件”(或类似的东西)时,这是因为WinZip向Shell注册以添加该动词。你需要掌握这些东西是什么:
从我给你的MSDN主题页面链接的文章将教你如何知道。但这并不简单。即使只是知道这些单词也会有助于您的搜索。还有some samples可用,但不要尝试从那些开始:首先阅读背景。