TCL/TK-获取桌面路径

TCL/TK-获取桌面路径,tcl,expect,tk,Tcl,Expect,Tk,我的TCL/TK应用程序提示用户选择保存文件的位置 -initialdir选项的值应该是多少,以便桌面是默认位置 我尝试了%userprofile%\desktop,但它不起作用 set dir [tk_chooseDirectory -title "Where do you want to save the config file?" -initialdir %userprofile%\desktop] 谢谢最安全的方法是使用带有参数“csidl\u common\u desktopdire

我的TCL/TK应用程序提示用户选择保存文件的位置

-initialdir选项的值应该是多少,以便桌面是默认位置

我尝试了%userprofile%\desktop,但它不起作用

set dir [tk_chooseDirectory -title "Where do you want to save the config file?" -initialdir %userprofile%\desktop]
谢谢

最安全的方法是使用带有参数“csidl\u common\u desktopdirectory”的命令获取“所有用户”桌面目录的路径,或使用“csidl\u desktopdirectory”获取当前用户的桌面

如果您不想依赖twapi,可以在注册表中找到路径,但我不知道它有多可靠。例如:

package require registry

puts [registry get "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders" "Desktop"]
这将在我的系统上返回“%USERPROFILE%\Skrivbord”。您仍然需要展开USERPROFILE变量(以及任何其他变量)。最好使用twapi::expand_environment_strings,但由于您没有使用twapi,请尝试使用$env(HOME)来regsub:ing%USERPROFILE%


或者,如果你不关心使用非英语窗口的人,只需使用“~/Desktop”。

TWAPI软件包绝对是最简单的方法。