Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: atomicluisОтветов: 1

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

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

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

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

Спасибо

tclexpecttk

Ответы

Ответ 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".

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы