重启了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文件呢,那样收藏夹使用就方便多了
自定义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