Ticket #43493

ポータブル版の考慮

Date d'ouverture: 2021-12-29 01:44 Dernière mise à jour: 2022-03-07 23:50

Rapporteur:
(Anonyme)
Propriétaire:
Type:
État:
Atteints
Composant:
(Aucun)
Priorité:
5 - moyen
Sévérité:
5 - moyen
Résolution:
Fixed
Fichier:
1
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

Détails

  • TERATERM.INI などの設定ファイルは %APPDATA%\teraterm5 に置かれる
  • ポータブル版などでは設定ファイルを別のフォルダ(exeと同じフォルダなど)に置きたい

Ticket History (3/9 Histories)

2021-12-29 01:44 Updated by: None
  • New Ticket "ポータブル版の考慮" created
2022-01-03 01:19 Updated by: zmatsuo
  • Propriétaire Update from (Aucun) to zmatsuo
2022-01-08 01:19 Updated by: zmatsuo
Commentaire

ポータブル版の動作は?

今のところ、ポータブル版は exe と同じフォルダに 設定、ログなどを置くことを考えています。

どうやって、ポータブル版と通常インストール版を切り替えるか?

ポータブル版バイナリを作り分けるのではなく 1つのバイナリで動作を変えたいと考えています。

どうやって1つのバイナリで動作を変えるか?

案を考えました。

案1 ttermpro.exe のフォルダから判定

  • ttermpro.exeのパスに "Program Files" が含まれているかチェック
  • 含まれていたら通常インストールと判断
    • デフォルトフォルダを使用する
  • - 含まれていなかったらポータブル版と判断
    • exe と同じフォルダを使用する

案2 portable.ini(仮)

  • ttermpro.exeと同じフォルダに portable.ini(仮)を置く
  • このファイルがあると、ポータブル版と判断
    • ttermpro.exeと同じフォルダに設定ファイルを使用する
    • ファイルは存在するかどうかだけで、内容は問わない

案3 profile.ini(仮)

  • ttermpro.exe と同じフォルダの profile.ini(仮) をまず見る
    • この中にフォルダ位置などを書いておく
    • ファイルがない場合は通常インストール版として動作
  • Firefox, Thunderbird などと似たような感じ

案4 案2+案3

  • まずは、案2(portable.ini ファイル有り/無し)で作る
  • 拡張が必要になってきたら portable.ini の中身を考える(案3へ)

まずは案2で実装してって、 拡張する必要が出てきたら案4(3)に進めば何とかなるかなと思います。

2022-02-06 15:21 Updated by: nmaya
Commentaire

ExeDirW(exe があるフォルダ)に portable.ini というファイルがあれば、HomeDirW は ExeDirW に、LogDirW は ExeDirW\log になるようにする、というのを書いてみました。

2022-02-06 23:10 Updated by: zmatsuo
Commentaire

いただいたパッチ(r9727)に cygterm で入れようとしていたコードを追加,マージ(r9728)しました。

IsPortableMode() は Tera Termが動作中に portable.ini が作成されたり削除されたりしても 最初の状態を保持するようにしています。

これで案2が実装できた形ですね。

GetLogDirW() がコールされたときにフォルダを生成するのが良いのかなと考え中です。

2022-02-06 23:36 Updated by: nmaya
Commentaire

ありがとうございます。

大丈夫な気もしますが、IsPortableMode() の引数に hInst を持たなくて大丈夫でしょうか。 パッチ(r9727)より前では、

  • GetHomeDirW() は引数に hInst があったが使われていなかった
  • GetLogDirW() には引数がなかったので hInst を追加した

という状況でした。

GetLogDirW() がコールされたとき

StartTeraTerm() で最初に呼ばれたあとに作られますが、中にあった方が安全かもしれませんね。

2022-03-07 23:49 Updated by: zmatsuo
Commentaire

hInst はどういうときに使うのか実はよく見えていません。

ずっとNULLのままになりそうな気もしています。

GetLogDirW() がコールされたとき

StartTeraTerm() で最初に呼ばれたあとに作られますが、中にあった方が安全かもしれませんね。

ファイルを作るかもしれない時はフォルダを作る方針で修正しました。 (r9743, ttssh2-dev 234)

対応できたかなと思います。クローズします。

2022-03-07 23:50 Updated by: zmatsuo
  • État Update from Ouvert to Atteints
  • Résolution Update from Aucun to Fixed

Attachment File List

Modifier

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