Ticket #34943

設定フォルダを開く

Open Date: 2015-02-28 20:45 Last Update: 2015-05-31 14:21

Reporter:
(del#24082)
Owner:
(del#24082)
Status:
Closed
Component:
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
None
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Details

Tera Termが起動時に読み込んだ teraterm.ini が、どのパスにあるかが分かりにくいため、
下記メニューを、「設定の読み込み」と「キーマップ読み込み」の間に追加する。

 ・設定 - 設定フォルダ

#動作イメージとして、サクラエディタの設定 - 共通設定 - 設定フォルダに近いものを想定。

Tera Term 4.87リリースに向けては、案3で検討中。

cf.
チケット #34902
GUI Configuration Option for "EnableLineMode" INI file setting

(1)案
Revision: 5809で teratem.ini があるフォルダを開くように対応しましたが、
よくよく考えたら、Tera Termの設定ファイルは下記の通り、複数存在するので、
それぞれごとのフォルダが異なる可能性があります。
ダイアログを出して、一覧で参照できるようにしようとか考えています。

- cygterm.cfg
- KEYBOARD.CNF
- ssh_known_hosts
- TERATERM.INI
- theme\ImageFile.INI
- theme\Scale.INI
- theme\Tile.INI


(2)案
設定フォルダメニュー配下に、さらにサブメニューを追加する。
TERATERM.INIファイルは Virtual Store 対象外となるようなので(Win7/8.1で確認)、
別扱いとする。
INIファイル以外のファイルで、ひとつでも Virtual Store にあれば、Vitual Storeを開く。

 ・設定 - 設定フォルダ -+-- TERATERM.INI
                      |
                      +-- Others


(3)案
ユーザの使用頻度が高い設定ファイルをサポートする。

- cygterm.cfg
- KEYBOARD.CNF
- ssh_known_hosts (RW用)
- TERATERM.INI

Ticket History (3/19 Histories)

2015-02-28 20:45 Updated by: (del#24082)
  • New Ticket "設定フォルダを開く" created
2015-03-01 16:23 Updated by: (del#24082)
  • Details Updated
2015-03-04 00:37 Updated by: (del#24082)
  • Details Updated
2015-03-04 23:51 Updated by: (del#24082)
  • Details Updated
2015-03-05 09:19 Updated by: (del#1144)
Comment

ひとつのディレクトリに複数の設定ファイルを置いて使い分けることもできるので、フォルダを開いただけでは設定ファイルを特定できないかもしれません。

案1で「フルパス」で「ファイル名まで」わかるようにするのがよいと思います。

2015-03-06 16:14 Updated by: (del#24082)
Comment

ご意見ありがとうございます。 案1で進めます。

2015-03-07 10:46 Updated by: (del#1144)
Comment

Visual Studio 2005 では TOKEN_ELEVATION 構造体が定義されていないようで、コンパイルできませんでした。

2015-03-07 11:10 Updated by: (del#1144)
Comment

TOKEN_ELEVATION は vtwin.cpp の中で定義してしまえば良さそうですが、TOKEN_INFORMATION_CLASS は TokenOrigin までのものが winnt.h にすでに存在しているので、上書き定義出来ません。

また、OpenProcessToken() や GetTokenInformation() の最低サポート OS バージョンが高めだと思うので、古い OS では実行時にエラーが出るような気がします。

2015-03-07 22:20 Updated by: (del#24082)
Comment

フィードバックありがとうございます。 VBやC#でも使えるやり方があるようなので、それを参考に、VS2005でもビルドできるようにしました。

Vista以前のOSに対しては、OSバージョンを見て、特権レベルの確認をしないようにしてあります。

cf. http://dobon.net/vb/dotnet/system/isadmin.html

2015-03-07 22:46 Updated by: (del#24082)
Comment
ssh_known_hosts ファイルのパスを Tera Term 側から知りたいのですが、
どのやり方がスマートでしょうか?

案(1)
TComVar 構造体のメンバーを追加し、TTSSHが起動されたときに、
TTSSH側でセットする。

案(2)
TTXScpSendfile のようなエクスポート関数を作り、Tera Term 側から
起動し、パスを取得する。
2015-03-07 23:36 Updated by: (del#1144)
Comment

VS2005

対応ありがとうございます。ADVAPI32.DLL の遅延読み込みが必要かと思いましたが、Windows95 からある DLL なので大丈夫でした。

theme

BGThemeFile の指定を見ると、ImageFile.INI/Scale.INI/Tile.INI は固定で指定しているのではなくワイルドカードになっています。

ssh_known_hosts

いま使われているファイルを特定するには、起動時の設定値のコピーではなく、現在の設定値を返す関数を使うのがよいと思います。

そういえば、ssh_known_hosts も 2 ファイル指定できませんでしたっけ?

INI C:\Program Files\teraterm\TERATERM.INI 「...」
CNF C:\Program Files\teraterm\KEYBOARD.CNF 「...」
cygterm.cfg C:\Program Files\teraterm\cygterm.cfg 「...」
theme C:\Program Files\teraterm\theme\*.ini 「...」
ssh_known_hosts C:\Program Files\teraterm\ssh_known_hosts 「...」

「...」 は、左の表示結果のフォルダ部のみを検出して開く、というのはどうでしょうか。

2015-03-08 01:18 Updated by: (del#24082)
Comment

maya への返信

theme

BGThemeFile の指定を見ると、ImageFile.INI/Scale.INI/Tile.INI は固定で指定しているのではなくワイルドカードになっています。

デフォルトではそうなのですが、背景画像を指定した場合は"ImageFile.INI"に書き換わります。 Scale.INIとTile.INIは、常に同じディレクトリ配下にあるので、この2つは束ねてもよいかなと 考えましたが、再考の余地あり。

ssh_known_hosts

いま使われているファイルを特定するには、起動時の設定値のコピーではなく、現在の設定値を返す関数を使うのがよいと思います。

案2で検討します。

そういえば、ssh_known_hosts も 2 ファイル指定できませんでしたっけ?

それは認識なかったですが、いま確認してみると、確かに読み書きようと読み込み専用の 2つが指定できるようになっていますが、どうやって使い分けるのか。。

|| INI || C:\Program Files\teraterm\TERATERM.INI || 「...」 || || CNF || C:\Program Files\teraterm\KEYBOARD.CNF || 「...」 || || cygterm.cfg || C:\Program Files\teraterm\cygterm.cfg || 「...」 || || theme || C:\Program Files\teraterm\theme\*.ini || 「...」 || || ssh_known_hosts || C:\Program Files\teraterm\ssh_known_hosts || 「...」 || 「...」 は、左の表示結果のフォルダ部のみを検出して開く、というのはどうでしょうか。

そちらのほうがよいので、対応します。

2015-03-08 08:50 Updated by: (del#1144)
Comment

デフォルトではそうなのですが、背景画像を指定した場合は"ImageFile.INI"に書き換わります。 Scale.INIとTile.INIは、常に同じディレクトリ配下にあるので、この2つは束ねてもよいかなと 考えましたが、再考の余地あり。

テーマファイルはユーザが自由に増減できるので「Scale.INIとTile.INI」の2つに固定できません。

さらに、あるファイルは VirtualStore 先にあって、別のファイルはそうではないという状況は存在します。難しいです。

TERATERM.INIファイルは Virtual Store 対象外

別名で保存すると VirtualStore のフォルダに保存されます。

2015-03-08 22:25 Updated by: (del#24082)
Comment

ssh_known_hosts が複数指定できるようになっていることを、実装から確認しました。 TTSSHの設定ダイアログでは、最大2つ指定することができるようになっていますが、 実際にはセミコロンで区切れば、いくつでも指定できるようになっています。

KnownHostsFiles=ssh_known_hosts;ssh_known_hosts2;ssh_known_hosts3;ssh_known_hosts4;…

pvar->hosts_state.file_numでファイル数、pvar->hosts_state.file_namesでファイル名が 格納されているので、これらの情報を Tera Term 側から取得すればよさそうです。

2015-05-21 00:42 Updated by: (del#1144)
Comment

「ts.EtermLookFeel.BGThemeFile を表示する」という案では、/path/to/theme/*.ini と表示することはできても、実在するファイル名でないと _access() が値を返さないので openVirtualStore() が正しく動作しない、という感じでしょうか。いまいちですね。

実在して中に何かあればどちらのフォルダも開く、というのは乱暴かなぁ。

一つずつ VirtualStore かどうか判定してプルダウンにするのもありかと思いましたが、それは表示幅が足りなくなりますね(今はエディットコントロールだから横にスクロールできる)。

2015-05-21 09:18 Updated by: (del#24082)
  • Details Updated
2015-05-22 00:12 Updated by: (del#24082)
  • Details Updated
2015-05-31 13:59 Updated by: (del#24082)
  • Ticket Close date is changed to 2015-05-31 13:59
  • Status Update from Open to Closed
  • Resolution Update from None to Fixed
2015-05-31 14:21 Updated by: (del#1144)
Comment

#35205 へ続く

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login