是否希望程序共享Windows资源管理器图标覆盖?

是否希望程序共享Windows资源管理器图标覆盖?,windows,tortoisesvn,overlay,Windows,Tortoisesvn,Overlay,事实上,Windows只允许15个图标覆盖在这一点上已经是老生常谈了。我知道如何重命名注册表项以获得我绝对需要的可见覆盖。但我想知道是否有更好的办法 我对注册表编辑知之甚少,对windows的内部工作以及如何请求/交付覆盖层几乎一无所知。所以我不确定这些覆盖层是如何工作的。。。但是我使用的有覆盖的程序(TortoiseSvn、Box、GoogleDrive)基本上都做相同的事情。一般来说,它们将本地文件的状态与云中或服务器上文件的状态进行比较。出于这个原因,似乎这些重叠中的许多都可以在逻辑上共享

事实上,Windows只允许15个图标覆盖在这一点上已经是老生常谈了。我知道如何重命名注册表项以获得我绝对需要的可见覆盖。但我想知道是否有更好的办法

我对注册表编辑知之甚少,对windows的内部工作以及如何请求/交付覆盖层几乎一无所知。所以我不确定这些覆盖层是如何工作的。。。但是我使用的有覆盖的程序(TortoiseSvn、Box、GoogleDrive)基本上都做相同的事情。一般来说,它们将本地文件的状态与云中或服务器上文件的状态进行比较。出于这个原因,似乎这些重叠中的许多都可以在逻辑上共享。为什么BoxSynced、GoogleDriveSynced和Ortooise1Normal不能使用相同的图标


所以我的问题是:有人知道如何操纵注册表来组合一些图标覆盖吗?或者是否有某种工具或实用工具可以实现一组“共享覆盖”

龟甲是一种可以达到这一目的的垫片。它的设计目的是在Otteroise客户端(SVN、git、Hg)之间共享图标覆盖,但它可以重新调整用途,以便对文件同步程序执行相同的操作,只要您可以将文件同步状态与给定的版本控制图标之一相匹配(如果OtteroiseOverlays对其进行扩展以允许更多可能的图标,那就更好了)

说明:

  • 安装龟甲罩。它可以被安装,也可以和乌龟客户端一起安装
  • 通过在[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers]中多加几个空格,确保tortoisexxxx键位于第一位
  • 向[HKLM\SOFTWARE\TortoiseOverlays]添加适当的键以确定映射
  • 您可以通过读取,然后从覆盖键中找出映射到哪些状态来添加相应的键(给定键名通常很容易,但对于Dropbox和OneDrive,请参见和)。下面我为Dropbox、Google Drive、OneDrive和OwnCloud设计了一个适用于我的示例。可以将适当的部分保存到.reg文件并导入它们

        ; GoogleDriveSynced
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Normal]
        "GoogleDrive"="{81539FE6-33C7-4CE7-90C7-1C7B8F2F2D40}"
    
        ; GoogleDriveBlacklisted
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Ignored]
        "GoogleDrive"="{81539FE6-33C7-4CE7-90C7-1C7B8F2F2D42}"
    
        ; GoogleDriveSyncing
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Modified]
        "GoogleDrive"="{81539FE6-33C7-4CE7-90C7-1C7B8F2F2D41}"
    
        ;OCError
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Conflict]
        "OC"="{0960F090-F328-48A3-B746-276B1E3C3722}"
    
        ;OCErrorShared
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Conflict]
        "OCShared"="{0960F091-F328-48A3-B746-276B1E3C3722}"
    
        ;OCOK
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Normal]
        "OC"="{0960F092-F328-48A3-B746-276B1E3C3722}"
    
        ;OCOKShared
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Normal]
        "OCShared"="{0960F093-F328-48A3-B746-276B1E3C3722}"
    
        ;OCSync
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Modified]
        "OC"="{0960F094-F328-48A3-B746-276B1E3C3722}"
    
        ;OCSyncShared
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Modified]
        "OCShared"="{0960F095-F328-48A3-B746-276B1E3C3722}"
    
        ;OCWarning
        ;"OC"="{0960F096-F328-48A3-B746-276B1E3C3722}"
    
        ;OCWarningShared
        ;"OCShared"="{0960F097-F328-48A3-B746-276B1E3C3722}"
    
        ;DropboxExt1 - "Synced!"
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Normal]
        "Dropbox"="{FB314ED9-A251-47B7-93E1-CDD82E34AF8B}"
    
        ;DropboxExt2 - "Sync in progress"
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Modified]
        "Dropbox"="{FB314EDA-A251-47B7-93E1-CDD82E34AF8B}"
    
        ;DropboxExt3 - "Synced! - Locked"
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Normal]
        "DropboxLock"="{FB314EDD-A251-47B7-93E1-CDD82E34AF8B}"
    
        ;DropboxExt4 - "Sync in progress - Locked"
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Modified]
        "DropboxLock"="{FB314EDE-A251-47B7-93E1-CDD82E34AF8B}"
    
        ;DropboxExt5 - "Sync not happening" (red x)
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Conflict]
        "Dropbox"="{FB314EDB-A251-47B7-93E1-CDD82E34AF8B}"
    
        ;DropboxExt6 - "Sync not happening - Locked" (red x + Lock)
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Conflict]
        "DropboxLock"="{FB314EDF-A251-47B7-93E1-CDD82E34AF8B}"
    
        ;DropboxExt7 - "A file or folder isn't syncing" (gray minus)
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Ignored]
        "Dropbox"="{FB314EDC-A251-47B7-93E1-CDD82E34AF8B}"
    
        ;DropboxExt8 - "A file or folder isn't syncing - Locked" (gray minus+Lock)
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Ignored]
        "DropboxLock"="{FB314EE0-A251-47B7-93E1-CDD82E34AF8B}"
    
        ;OneDrive1 - "Not syncing" (red x)
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Conflict]
        "OneDrive"="{BBACC218-34EA-4666-9D7A-C78F2274A524}"
    
        ;OneDrive2 - "Synced (Shared)"
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Normal]
        "OneDriveShared"="{5AB7172C-9C11-405C-8DD5-AF20F3606282}"
    
        ;OneDrive3 - "Syncing (Shared)"
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Modified]
        "OneDriveShared"="{A78ED123-AB77-406B-9962-2A5D9D2F7F30}"
    
        ;OneDrive4 - "Synced"
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Normal]
        "OneDrive"="{F241C880-6982-4CE5-8CF7-7085BA96DA5A}"
    
        ;OneDrive5 - "Syncing"
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Modified]
        "OneDrive"="{A0396A93-DC06-4AEF-BEE9-95FFCCAEF20E}"
    
        ;BoxSyncSynced
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Normal]
        "BoxSync"="{c89f9943-8f58-3eca-bd55-a658f53b2f48}"
    
        ;BoxSyncNotSynced
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Modified]
        "BoxSync"="{5ea95e3d-3e46-3812-b03c-49785fa67d41}"
    
        ;BoxSyncFileLocked
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Locked]
        "BoxSync"="{2a607da5-abe8-358e-a881-c0f5faf2d3a5}"
    
        ;BoxSyncFileLockedByOther
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Modified]
        "BoxSync"="{f7d2951f-0b6b-346c-99ec-69cffc30a364}
    
        ;BoxSyncProblem
        [HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseOverlays\Conflict]
        "BoxSync"="{a88b7184-bfa1-3d14-8efb-2225df9699bc}"
    
    对于我的已计算注册表项,有几个注意事项:

    • 我已将“错误”映射为“冲突”,将“同步”映射为“修改”。OwnCloud的“警告”没有明显的匹配,因此它们没有映射到任何东西
    • 许多程序都有与主程序不同的附加图标,因为我忽略了一个特征,因此我将这两个图标映射到同一个图标。其中包括OwnCloud“共享”、Dropbox“锁定”和OneDrive“共享”对
    • 密钥取决于CLSID,CLSID可能在文件同步程序的版本之间发生变化

    我不认为仅仅通过修改注册表就可以做到这一点,但可能需要一个小实用程序。(我认为,如果优先级更高,它可以输入来自系统的覆盖请求,然后将它们发送到其他覆盖处理程序,并进行相应的报告。GUI可以允许将多个程序的覆盖映射到单个图标。)如果您修改问题以包括其他类型的解决方案,然后我会加上悬赏。我编辑了这个问题。我所做的编辑相当小,没有你的评论那么具体。我是新来的,所以仍在努力掌握格式化此类问题的最佳方法。如果您觉得我应该进行其他编辑,请告诉我。:)这很有效。既然已经安装了Ortoise,我所要做的就是对注册表进行编辑。我是否应该编辑您的答案以添加BoxSync特定键?