如何将应用程序主要添加到给定文件类型的“打开方式”菜单中?
E.g。我做了一个简单的文本文件查看器,我已经做了相同的安装项目, 我希望将文本文件查看器与系统中的所有.txt文件相关联, 当用户双击任何.txt文件时,我的应用程序应该打开。
Open with menu http://i4.photoblog.com/photos/27294-1306838510-0.jpg
答案 0 :(得分:2)
你可以使用这个伟大的课程:http://www.mentalis.org/soft/class.qpx?id=5
答案 1 :(得分:1)
您必须更改注册表项:HKEY_CLASSES_ROOT\txtfile\shell\open\command
。看看regedit.exe
。您还可以查看此密钥:HKEY_CLASSES_ROOT\.txt
要操作注册表项,请在Docs使用System.Win32.Registry
。
答案 2 :(得分:1)
这是关于如何做到这一点的一种方式(在VB中)。 ApplicationTag是注册表的简称,例如editor3.1
。您可以使用regedit检查注册表以查看正在发生的情况,并且在测试应用程序的这一部分之前,您可能希望创建一个还原点。
Imports Microsoft.Win32
...
Registry.SetValue("HKEY_CURRENT_USER\software\classes\" & FileType, "", applicationTag)
q = Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\" & FileType, True)
If q IsNot Nothing AndAlso q.GetValue("ProgID", "notfound") <> "notfound" Then
q.SetValue("ProgID", appTag) ' for the local user, overrides hkcr
End If
appKey = "HKEY_CURRENT_USER\software\classes\" & applicationTag
Registry.SetValue(appKey, "", "text")
Registry.SetValue(appKey & "\shell", "", "open")
Registry.SetValue(appKey & "\shell\open", "", "")
Registry.SetValue(appKey & "\shell\open\command", "", """" & ApplicationPath & """ ""%1""")
Registry.SetValue(appKey, "", "text")
appKey = "HKEY_CURRENT_USER\software\classes\CLSID\" & ApplicationGuid
Registry.SetValue(appKey, "", applicationTitle)
Registry.SetValue(appKey & "\ProgID", "", applicationTag)