我的TCL / TK应用程序提示用户选择保存文件的位置。
-initialdir选项的值应该是什么,以便桌面是默认位置?
我尝试过%userprofile%\ desktop,但它无效。
set dir [tk_chooseDirectory -title "Where do you want to save the config file?" -initialdir %userprofile%\desktop]
由于
答案 0 :(得分:3)
最安全的方法是使用twapi的get_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”。