TCL / TK - получить путь к рабочему столу

Приложение My TCL / TK предлагает пользователю выбрать место для сохранения файла.

Каким должно быть значение параметра -initialdir, чтобы рабочий стол был местоположением по умолчанию?

Я пробовал% userprofile% \ desktop, но он не работает.

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

Спасибо


person atomicluis    schedule 19.08.2012    source источник


Ответы (1)


Самый безопасный способ - использовать 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, попробуйте вместо этого regsub: ing% USERPROFILE% с $ env (HOME).

Или, если вас не интересуют люди с неанглоязычной Windows, просто используйте "~ / Desktop".

person potrzebie    schedule 20.08.2012
comment
Пакет TWAPI - определенно самый простой способ. - person Donal Fellows; 20.08.2012