待辦事項 #43493

ポータブル版の考慮

啟用日期: 2021-12-29 01:44 最後更新: 2022-03-07 23:50

回報者:
(匿名)
負責人:
類型:
狀態:
關閉
元件:
(無)
優先權:
5 - 中
嚴重程度:
5 - 中
處理結果:
修正
檔案:
1
Vote
Score: 0
No votes
0.0% (0/0)
0.0% (0/0)

細節

  • 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
  • 負責人 Update from (無) to zmatsuo
2022-01-08 01:19 Updated by: zmatsuo
評語

ポータブル版の動作は?

今のところ、ポータブル版は 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
評語

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

2022-02-06 23:10 Updated by: zmatsuo
評語

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

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

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

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

2022-02-06 23:36 Updated by: nmaya
評語

ありがとうございます。

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

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

という状況でした。

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

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

2022-03-07 23:49 Updated by: zmatsuo
評語

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

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

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

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

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

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

2022-03-07 23:50 Updated by: zmatsuo
  • 狀態 Update from 開啟 to 關閉
  • 處理結果 Update from to 修正

Attachment File List

編輯

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