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 に答える