Приложение My TCL / TK предлагает пользователю выбрать место для сохранения файла.
Каким должно быть значение параметра -initialdir, чтобы рабочий стол был местоположением по умолчанию?
Я пробовал% userprofile% \ desktop, но он не работает.
set dir [tk_chooseDirectory -title "Where do you want to save the config file?" -initialdir %userprofile%\desktop]
Спасибо
Ответ 1 · рейтинг 3 · potrzebie
Самый безопасный способ - использовать 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".