TCL / TK - 获取桌面路径

时间:2012-08-19 22:36:24

标签: 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]

由于

1 个答案:

答案 0 :(得分:3)

最安全的方法是使用twapiget_shell_folder命令和参数“csidl_common_desktopdirectory”获取“所有用户”桌面目录的路径,或使用“csidl_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%。

或者,如果您不关心非英语Windows用户,只需使用“〜/ Desktop”。