收藏中不能显示Total Commander的Dirmenu

重启了N遍了,不行啊,我用公司电脑试试

我这里也是同样的问题

64位和32位的totalcmd 从8.52到9.0的beta10都试过
用的也是默认的全英文安装路径,注册表里也写入了wincmd.ini的绝对路径

但是listray就是无法识别到totalcmd的收藏夹,倒是能直接用totalcmd打开搜索结果。

也试过listray以管理员权限和非管理员权限运行。

都无法解决

更新完注册表后重启Listary了么?

另一个方法是在 “%APPDATA%\GHISLER” 创建 WINCMD.INI 的 符号链接
具体操作:Win + R 运行 cmd,然后运行 (或者保存为 bat 文件并运行之):

set "symlinkDir=%APPDATA%\GHISLER"
MkDir "%symlinkDir%"
Mklink "%symlinkDir%\WINCMD.INI" "{这里替换成你的 WINCMD.INI 的完整路径}"

重启过的~我重启后也试过不同的权限哦,前边有说明“也试过listray以管理员权限和非管理员权限运行。”

建议listray直接早日直接配置这个文件的路径

@DiamondbacK 谢谢你的方案,不过不太明白
你的配置路径是把totalcmd的appdate里的配置路径设置成一个快捷名叫symlinkdir,让后硬链接到wincmd.ini
Listray的运行机制就是找这个symlinkDir么?这个名字不能动?

还是比如我是把wincmd放在安装路径,上面第一句的%APPDATA%\GHISLER\要不要替换为totalcmd的安装路径?

%APPDATA%\GHISLER 是安装版 Total Commander 的 WINCMD.INI 文件的默认存放位置,这也是为什么 Listary 目前只会查找这个位置,除非你按照 @Channing 的方法改过注册表。

所以命令里写的 %APPDATA%\GHISLER 是出于 Listary 的行为规则,跟 Total Commander 安装路径无关。

symlinkDir 只是我上面一串命令所用的一个临时变量,名称是任意的,只是用来表示 %APPDATA%\GHISLER。创建的是名称为 WINCMD.INI符号链接,这样当 Listary 去这个位置找 WINCMD.INI 的时候就会找到这个同名的符号链接,然后操作系统会根据链接目标 (真正的 WINCMD.INI) 的路径,让 Listary 访问到实际的 WINCMD.INI

实际在用的 WINCMD.INI 文件不一定是 Total Commander 的安装路径下的那一个,因为可以在安装后修改。

你要做的就是确认你的 Total Commander 正在使用WINCMD.INI 的完整路径,不管是改注册表还是用我的方法。我估计你的问题就出在这里。

如果对 Total Commander 的 ini 文件机制有疑惑,可以参考这本书的第 3.1.5 小节。

@Channing @DiamondbacK

已经按照DiamondbacK的方法设置了符号链接
但是Listray依然读不出到wincmd.ini的内容。

我终于想起来去看了一下wincmd里的内容。。。。

我用过这个参数。。。。。RedirectSection=%commander_path%\user\user.ini
很抱歉,我才想起来,原来我这儿fav路径保存是在totalcmd安装路径的\User\User.ini下的,没有用wincmd.ini。
这点 @Channing Listray以后能处理为读取任意指定ini文件,再读取DirMenu关键字而不是死抓wincmd.ini这个文件么?

在此对 @DiamondbacK @Channing 表示歉意,给你们添加了无用的麻烦。谢谢@DiamondbacK 对Listray工作机制的解释~~

以后将可以在Listary中手动指定ini位置。

是只要ini中有dirmenu字段就可以,还是必须保持在wincmd中不能拆分ini文件么?

有DirMenu就可以。

那只要求读取ini文件的dirmenu字头理论上我可以用@DiamondbacK的符号链接,只是把最后一句的路径改为user.ini即可

这样既不用改动注册表影响totalcmd加载wincmd.ini,也能让Listray加载到user.ini。
可惜我实验的结果是硬链接产生的wincmd.ini链接到的user.ini也还是未能让Listray读取到相应的收藏夹。
这块能不能以后放个跟踪调试或者日志输出啊

这个解决方案暂时靠谱不,其他有类似问题,用了国内定制版或者自己优化过参数的朋友可以试试看,我这里暂时还没成功,

我的方法和改注册表的方法都只影响 Listary,都不影响 Total Commander。
我讲的方法也是我自己正在使用的。

你把这几行命令具体改成什么样了?注意花括号 {} 是要去掉的;而且 cmd 也并不认识 TC 内置变量 %COMMANDER_PATH%,要确保替换成实际路径。

如果命令正确执行了,那么 %APPDATA%\GHISLER\WINCMD.INI 这个符号链接是可以直接用记事本打开查看和编辑的,里面的内容就是 user.ini 的内容。如果没有达到这个效果,那么你可能没改好。

PS. 符号链接又被称为 软链接,而不是硬链接。

set "symlinkDir=%APPDATA%\GHISLER"
MkDir "%symlinkDir%"
Mklink “%symlinkDir%\WINCMD.INI” “C:\Protable Files\Totalcmd\User\User.ini”

但是改注册表为“C:\Protable Files\Totalcmd\User\User.ini”,和符号链接都没有效果~只有等指定ini的功能了~

PS. junction和Symlink经常分不清拉~~~嘿嘿

什么时候可以手动指定TC中的ini文件呢,那样收藏夹使用就方便多了

快了……

自定义ini文件位置现在开发出来了么?

我试了一种思路,在 c:\Users\XXX\AppData\Roaming\GHISLER\ 路径下,手工建立了一份Wincmd.ini 文件。

@Channing 的说法

有DirMenu就可以。
重启后Listary还是没能读取到TC的收藏夹菜单。请问按以下的写法还需要添加什么别的字段么?

内容如下

[DirMenu]
menu1=桌面 | Desktop (&D)
cmd1=cd %$Desktop%
menu2=文档 | Documents (&M)
cmd2=cd %$Documents%
menu3=下载 | Downloads (&N)
cmd3=cd %$Downloads%
menu4=-
menu5=系统 | Windows (&W)
cmd5=cd %$Windows%
menu6=系统 | System32 (&S)
cmd6=cd %$System%
menu7=系统 | Program Files (&F)
cmd7=cd %$ProgramFiles%
menu8=系统 | Program Files (x86) (&X)
cmd8=cd %$ProgramFilesX86%
menu9=系统 | Program Data (&G)
cmd9=cd %$ProgramData%
menu10=系统 | AppData (&P)
cmd10=cd %$APPDATA%
menu11=系统 | Local AppData (&L)
cmd11=cd %$LOCAL_APPDATA%
menu12=系统 | Temp (&E)
cmd12=cd %TEMP%
menu13=-系统 | 虚拟文件夹 (&V)
menu14=我的电脑 | My Computer (&M)
cmd14=cm_OpenDrives
menu15=控制面板 | Control Panel (&C)
cmd15=cm_OpenControls
menu16=回 收 站 | Recycle Bin (&R)
cmd16=cm_OpenRecycled
menu17=字 体 | Fonts (&F)
cmd17=cm_OpenFonts
menu18=网 络 | Network (&N)
cmd18=cm_OpenNetwork
menu19=打 印 机 | Printers (&P)
cmd19=cm_OpenPrinters
menu20=–
menu21=-系统 | 其他 (&H)
menu22=公用文件 | Common Files (&C)
cmd22=cd %$ProgramFilesCommon%
menu23=公用文件 | Common Files (x86) (&X)
cmd23=cd %$ProgramFilesCommonX86%
menu24=驱动程序 | Drivers (&D)
cmd24=cd %$System%\Drivers
menu25=开始菜单 | Start Menu (&S)
cmd25=cd %$StartMenu%
menu26=开始菜单程序 | Programs (&P)
cmd26=cd %$Programs%
menu27=开始菜项启动项 | Startup (&U)
cmd27=cd %$Startup%
menu28=公用开始菜单 | Common Start Menu (&M)
cmd28=cd %$CommonStartMenu%
menu29=公用开始菜单程序 | Common Programs (&O)
cmd29=cd %$CommonPrograms%
menu30=公用开始菜单启动项 | Common Startup (&N)
cmd30=cd %$CommonStartup%
menu31=–
menu32=-
menu33=-用户 | 配置与数据 (&U)
menu34=用户配置 | User Profiles (&U)
cmd34=cd %$UserProfiles%
menu35=个人配置 | Profile (&P)
cmd35=cd %$Profile%
menu36=近期文档 | Recent (&R)
cmd36=cd %$Recent%
menu37=快速启动 | Quick Launch (&Q)
cmd37=cd %$QuickLaunch%
menu38=访问历史 | History (&H)
cmd38=cd %$History%
menu39=搜索历史 | Search History (&S)
cmd39=cd %$SearchHistory%
menu40=网络缓存 | Internet Cache (&I)
cmd40=cd %$InternetCache%
menu41=发 送 到 | Send To (&T)
cmd41=cd %$SendTo%
menu42=收 藏 夹 | Favorites (&F)
cmd42=cd %$Favorites%
menu43=链 接 | Links (&L)
cmd43=cd %$Links%
menu44=–
menu45=-用户 | 个人文档 (&R)
menu46=图片 | Pictures (&P)
cmd46=cd %$Pictures%
menu47=音乐 | Music (&M)
cmd47=cd %$Music%
menu48=视频 | Videos (&V)
cmd48=cd %$Videos%
menu49=网盘 | OneDrive (&O)
cmd49=cd %$SkyDrive%
menu50=–
menu51=-用户 | 公共文档 (&O)
menu52=文档 | Documents (&D)
cmd52=cd %$PublicDocuments%
menu53=图片 | Pictures (&P)
cmd53=cd %$PublicPictures%
menu54=音乐 | Music (&M)
cmd54=cd %$PublicMusic%
menu55=视频 | Videos (&V)
cmd55=cd %$PublicVideos%
menu56=桌面 | Desktop (&T)
cmd56=cd %$PublicDesktop%
menu57=下载 | Downloads (&N)
cmd57=cd %$PublicDownloads%
menu58=–
menu59=-
menu60=Total Commander (&T)
cmd60=cd %COMMANDER_PATH%

我遇到了这个问题,解决的办法是下载安装版的Total Commander,在安装过程中让选择wincmd.ini安装路径,我选择到便携版的TotalCommander的文件夹路径,然后安装完成。之后我又重新卸载了安装版的TotalCommander。如此一来神奇的一幕发生了,收藏中就出现了TotalCommander的Dirmenu。这里附上IniFileName的相关注册表以供参考,希望可以帮助到您。

谢谢分享,找时间我再检查一下注册表。

我这儿的问题主要是user.ini和wincmd.ini是做了拆分重写了一些字段。

我用过这个参数。。。。。 RedirectSection=%commander_path%\user\user.ini

之前试过重装,但并没有起作用

解决了,把dirmenu字段从user.ini转移回wincmd.ini就能认出来了。

只是以后更新就得小心了,安装容易动wincmd.ini