Windows 10注册表添加上下文菜单DLL处理程序

时间:2018-02-21 14:29:20

标签: dll windows-10 registry contextmenu handler

我想在4年前的Copying file details from Explorer as tabular text帖子中使用Denis Anisimov回答添加文件资源管理器上下文菜单DLL处理程序。具体来说,从Denis的zip文件下载,我想在某处复制他的64位DLL并将我的注册表连接到它。遗憾的是,Denis的单一注册表引用是HKCR \ AllFilesystemObjects,这让我很难过。

对于Windows 10,HKCR \ AllFilesystemObjects是否仍然适用?我看到*通配符和特定文件扩展名的条目。

如果是这样,为了简化使用,我想将我的Context菜单项仅限于Image files,复制到“Copy Image Details”。

这是否意味着我必须添加到所有图像文件扩展名,.jpg,.png,.gif等等?当然,选择shell或shellex,添加键,输入菜单文本和连接到DLL应该很容易。

但我找不到完整的答案。我发现许多不完整的但不完整的例子具有明显不同的密钥。我不想一起破解他们。

2 个答案:

答案 0 :(得分:0)

可能没有帮助,也许你已经解决了这个问题。我注意到你有2x系统上下文菜单选项,你可以通过注册表或DLL库添加项目,当我找到你的帖子时,我正在搜索更多信息,因为我试图找出使用它们的利弊方法

对我来说这似乎很乱,可能与旧版本的Windows有关。

答案 1 :(得分:0)

经过一番翻找后,我发现了这些陈旧但资源丰富的资源搜索。

•Google“代码项目白痴指南编写shell扩展处理程序”

•Youtube“shell扩展处理程序”

然而,我放弃了,而是编写了以下简单的vb.net实用程序。是的,您可以根据文件夹和文件进行定制,但是您可以轻松地深入查看数字文件属性。

Imports System.IO
Imports System.Collections.Generic
Imports System.Collections.ObjectModel
Imports System.Drawing

Module ShapesModule

    Sub Main()
        Dim SearchKind As SearchOption = SearchOption.TopDirectoryOnly

        Dim DRGW_StationFolders As ReadOnlyCollection(Of String) = My.Computer.FileSystem.GetDirectories("C:\Users\Dave Owens\!! D&RGW NarrowGauge IMAGES Maps !!")
        Dim LogFile As System.IO.StreamWriter = My.Computer.FileSystem.OpenTextFileWriter("C:\Users\Dave Owens\DRGW PixDimensions\Logs\Jpegs Analysis.log", True)
        For Each folder As String In DRGW_StationFolders
            If folder.Contains("mp") Then
                Dim ImageFiles As ReadOnlyCollection(Of String) = My.Computer.FileSystem.GetFiles(folder, FileIO.SearchOption.SearchTopLevelOnly, "*.jpg")
                If ImageFiles.Count > 0 Then
                    For Each JpegFile As String In ImageFiles
                        Dim bmp As New Bitmap(JpegFile.ToString())
                        Dim AspectRatio As Double = bmp.Width / bmp.Height
                        Dim ImageInfo As New FileInfo(JpegFile.ToString())
                        LogFile.WriteLine("{0,-24} |     W={1,-12}  |  H={2,-10}  |   AspRat={3, -10})", ImageInfo.Name, bmp.Width, bmp.Height, Math.Round(AspectRatio, 4))
                    Next
                End If
            End If
        Next
        LogFile.Close()
    End Sub

End Module