我的TC是便携版的(wincmd.ini和TC的主程序放在一起),我想应该可以通过添加注册表解决,可对这方面不太了解,谁能给出解决方案。
把wincmd.ini
的路径写到IniFileName
中。具体见截图:
非常感谢Channing这么快就给出了答案。
设置完需要重启Listary。
重启了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 小节。
已经按照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文件呢,那样收藏夹使用就方便多了