1

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

-initialdir 选项的值应该是多少才能使桌面成为默认位置?

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

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

谢谢

4

1 回答 1

3

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

于 2012-08-20T03:05:49.553 回答