TACImageViewer v1.2
==================

公開日: 2026-09-12

1. 概要
-------
TACImageViewer は、ファイル管理ソフト「卓駆★」を Windows 11 で使用した際、
環境によって画像ファイルを Enter またはダブルクリックで開くと
「アプリを選択」が表示される問題を回避し、指定した画像ビューアーへ画像を渡すための
非公式補助ツールです。

v1.2 では、従来別々だった Enter 用とダブルクリック用の補助プログラムを
TACImageViewer_Helper.exe 1本に統合しました。

本ツールは「卓駆★」および各画像ビューアーの作者・開発元とは無関係の非公式ツールです。
卓駆★本体、IrfanView、XnView、Pineapple Pictures、NeeView、Microsoft フォト等は
この配布物には含まれていません。


2. v1.2 の構成
---------------
常駐する EXE は次の2本です。

  TACImageViewer_Watcher.exe
  TACImageViewer_Helper.exe

TACImageViewer_Helper.exe が次の2つを同時に担当します。

  ・Enter キーの監視
  ・ファイル一覧でのダブルクリックの監視

Enter とダブルクリックの処理で共通する、卓駆★からのフルパス取得、INI 読み込み、
画像ビューアー起動処理も1本にまとめています。

卓駆★側の Ctrl+A / Ctrl+Z 等のキー割り当て設定は不要です。


3. 動作確認状況
---------------
v1.1 までの実機テストでは、次の5種類の画像ビューアーについて正常動作を確認しています。
v1.2 統合版では Microsoft フォト / IrfanView / NeeView を改めて確認しています。

  ・Microsoft フォト
  ・IrfanView 64-bit
  ・XnView
  ・Pineapple Pictures
  ・NeeView

確認済みの主な動作:

  ・画像ファイルを Enter で開く
  ・画像ファイルをダブルクリックで開く
  ・日本語、空白、&、#、%、+ を含む画像ファイル名を正常に開く
  ・TXT / PDF / ZIP / フォルダーの従来動作を変えない
  ・INI の Viewer= を変更すると各画像ビューアーへ切り替わる
  ・Ctrl+A の割り当てを変更せず Enter を使用できる

テスト環境の中心は Windows 11 / 卓駆★ Ver.4.70i です。
卓駆★のインストール先は問いません。TACImageViewerは卓駆★のインストールフォルダーを参照せず、実行中の卓駆★を検出して動作します。

v1.2 統合版については、Windows 11 / 卓駆★ Ver.4.70i の実機で、
通常権限で起動した Watcher が Helper を自動起動すること、卓駆★終了時に Helper が終了し、
Watcher は次回起動待ちで残ることを確認しています。
また、C:\TACImageViewer 配置で Microsoft フォト / IrfanView / NeeView の切り替えが
INI 保存後の次の画像操作から反映されることを確認しています。

なお、最初の v1.2 テスト時には Program Files 配下へ通常権限で配置したため、Windows の
VirtualStore により TACImageViewer.ini の実体が別の場所へ仮想化され、Helper が INI を
見つけられない事例がありました。このため、v1.2 では専用フォルダー
C:\TACImageViewer への配置を標準とします。

対象画像拡張子の初期値:
  jpg;jpeg;jpe;jfif;png;gif;bmp;dib;tif;tiff;webp;ico;pcx;tga


4. 同梱ファイル
---------------
TACImageViewer_Watcher.exe
    卓駆★の表示ウィンドウを監視し、Helper を自動起動・終了します。

TACImageViewer_Helper.exe
    Enter 用キーボードフックとダブルクリック用マウスフックを1本に統合した補助プログラムです。
    画像なら設定した画像ビューアーで開き、非画像・フォルダーは卓駆★本来の動作へ戻します。

TACImageViewer.ini
    使用する画像ビューアー、引数、画像拡張子の設定ファイルです。

README.txt
    この説明書です。

RELEASE_NOTES.txt
    v1.2 の変更内容です。

SHA256.txt
    配布ファイルの SHA-256 値です。

LICENSE.txt
    TACImageViewer 本体のライセンスです。

THIRD_PARTY_NOTICES.txt
    Go ランタイムのライセンス表示です。

BUILD.txt
    ソースからビルドする場合の手順です。

src\
    Go ソース一式です。


5. 配置
-------
推奨配置先は、Program Files 配下ではなく専用フォルダーです。

  C:\TACImageViewer\
      TACImageViewer_Watcher.exe
      TACImageViewer_Helper.exe
      TACImageViewer.ini

3ファイルを必ず同じフォルダーへ置いてください。
卓駆★本体の C:\Program Files\TAC へ置く必要はありません。

理由:
通常権限で Program Files 配下の設定ファイルを作成・更新すると、Windows の互換機能
VirtualStore により、実体が次のようなユーザー領域へ保存される場合があります。

  %LOCALAPPDATA%\VirtualStore\Program Files\TAC\

この状態では、TACImageViewer.ini が C:\Program Files\TAC にあるように見えても、
Helper から直接参照できない場合があります。C:\TACImageViewer を使用すれば、この
VirtualStore の影響を避けられます。

設定ファイルは、Helper と同じフォルダーの TACImageViewer.ini を最優先で読みます。
そこに無い場合のみ、EXE の1つ上のフォルダーも確認します。

v1.1 以前の TACImageViewer_Enter.exe / TACImageViewer_DblClick.exe や、
旧 TacIrfanView 系、Generic v1、Public Candidate v2 / v2.1 の補助プログラムは
同時に動かさないでください。キーボード・マウスフックが重複します。


旧版・旧配置から移行する場合:
  1. 旧 Watcher を終了し、タスク スケジューラのタスクを停止します。
  2. C:\TACImageViewer フォルダーを作成します。
  3. v1.2 の3ファイルを C:\TACImageViewer に置きます。
  4. タスク スケジューラの「プログラム」と「開始（オプション）」を上記の場所へ変更します。
  5. 旧 TACImageViewer_Enter.exe / TACImageViewer_DblClick.exe は起動しないでください。

以前 VirtualStore に作られた TACImageViewer.ini は新しい配置では使用しません。
必要な Viewer= 設定がある場合は、新しい C:\TACImageViewer\TACImageViewer.ini へ
内容を反映してください。


6. 卓駆★側の設定
----------------
TACImageViewer 用のキー割り当て設定は不要です。

Helper は卓駆★内部の「パスとファイル名」コマンドを直接呼び出して
選択中ファイルのフルパスを取得します。

既に Ctrl+A や Ctrl+Z に別の機能を割り当てている場合も、その設定を変更せず使用できます。


7. 画像ビューアーの選択
-----------------------
TACImageViewer.ini をメモ帳などで編集します。

重要:
  使用する画像ビューアーを有効にする場合は、該当する Viewer= 行の先頭にある「; 」を
  削除してください。その際、現在有効になっている別の画像ビューアーの Viewer= 行には
  「; 」を付けて無効にしてください。

  Viewer= は必ず1行だけ有効にしてください。

初期状態では Microsoft フォトが有効です。

例: IrfanView に変更する場合

変更前:
  Viewer=MicrosoftPhotos
  ; Viewer=C:\Program Files\IrfanView\i_view64.exe

変更後:
  ; Viewer=MicrosoftPhotos
  Viewer=C:\Program Files\IrfanView\i_view64.exe

設定変更後、Helper を通常は再起動する必要はありません。
次の Enter / ダブルクリック操作時に INI を再読込します。


8. 動作確認済み Viewer= の例
-----------------------------
Microsoft フォト:
  Viewer=MicrosoftPhotos

IrfanView 64-bit:
  Viewer=C:\Program Files\IrfanView\i_view64.exe

XnView:
  Viewer=C:\Program Files (x86)\XnView\xnview.exe

Pineapple Pictures:
  Viewer=C:\Program Files\pineapple-pictures\ppic.exe

NeeView:
  Viewer=C:\Program Files\NeeLaboratory\NeeView\NeeView.exe

EXE 型ビューアーの一般的な引数:
  Arguments="%1"

Microsoft フォトでは Arguments= は無視されます。

Arguments= に %1 が無い場合は、画像ファイルのパスを最後の引数として自動追加します。
Viewer= に相対パスを書いた場合は TACImageViewer.ini のあるフォルダーを基準にします。


9. 管理者権限について
---------------------
通常は、卓駆★、TACImageViewer_Watcher.exe、使用する画像ビューアーを
すべて通常権限で起動してください。この場合、「管理者として実行」は必要ありません。

卓駆★を管理者として実行している場合だけ、Watcher も管理者権限で起動してください。
Windows の権限制御により、通常権限の Helper から管理者権限の卓駆★へコマンドを送れない場合があります。

また、IrfanView 等の画像ビューアーだけが「管理者としてこのプログラムを実行する」に
設定されていると、通常権限の Helper から起動できない場合があります。
［プロパティ］→［互換性］と、必要に応じて［すべてのユーザーの設定を変更］の両方を確認してください。

原則として「卓駆★・TACImageViewer・画像ビューアーの権限レベルをそろえる」と考えてください。


10. Watcher のタスク スケジューラ設定
-------------------------------------
通常権限で卓駆★を使用する場合の設定例:

[全般]
  ・ユーザーがログオンしているときのみ実行する
  ・「最上位の特権で実行する」は通常は OFF

[トリガー]
  ・ログオン時
  ・必要に応じて 5分ごと / 無期限で繰り返す

[操作]
  プログラム:
    C:\TACImageViewer\TACImageViewer_Watcher.exe

  開始（オプション）:
    C:\TACImageViewer

[設定]
  ・「タスクを停止するまでの時間」は OFF
  ・既に実行中の場合: 新しいインスタンスを開始しない

卓駆★を管理者として実行している場合は、「最上位の特権で実行する」を ON にしてください。

5分ごとの繰り返しは、Watcher が予期せず終了した場合の自動復旧用です。
Watcher 自身にも単一起動制限があります。


11. 通常の動作
--------------
卓駆★を起動すると、Watcher が表示中の Tac!Main を検出し、少し待ってから

  TACImageViewer_Helper.exe

を1本だけ起動します。

最後の卓駆★を終了すると Helper も自動終了します。
Watcher 自身は次回の卓駆★起動を待つため常駐します。

Watcher が途中で再起動した場合でも、既に残っている Helper を認識し、
卓駆★終了時に回収するようにしています。

Helper が更新作業などで一時的に見つからない場合は、Watcher は終了せず、
卓駆★が起動している間は5秒おきに再試行します。同一の起動エラーはログへ
連続して大量記録しないよう抑制します。Helper を元の場所へ戻せば自動復旧します。

Helper 自身にも単一起動制限があり、同じユーザーで二重起動しないようにしています。


12. 非画像ファイルとフォルダー
------------------------------
次のような項目は TACImageViewer で画像として横取りせず、卓駆★本来の動作へ渡します。

  ・TXT
  ・PDF
  ・ZIP
  ・フォルダー
  ・Extensions= に登録されていないファイル


13. ログ
--------
診断用ログは Windows の一時フォルダーに作成されます。

  %TEMP%\TACImageViewer_Watcher.log
  %TEMP%\TACImageViewer_Helper.log

Helper ログでは、Enter とダブルクリックを次のように区別して記録します。

  ENTER IMAGE ...
  ENTER NORMAL ...
  DBL IMAGE ...
  DBL NORMAL ...

Helper ログは v1.2 では上書きせず追記します。
Helper が再起動すると、日時と PID を含む「session started」の区切り行を追加するため、
ビューアー切り替え前後の記録を同じログで確認できます。

ログは設定ファイルではないため削除して構いません。削除後は必要に応じて再作成されます。
ログにはローカルのファイルパス等が含まれることがあります。
他人へ送る前に内容を確認してください。

画像ファイルとして認識した後に Viewer= で指定した画像ビューアーの起動に失敗した場合は、
卓駆★本来の「開く」へ自動的に戻さず、エラーダイアログを表示します。
これにより、起動失敗が Windows の「アプリを選択」画面として見えることを防ぎます。
詳細なエラー内容は TACImageViewer_Helper.log にも記録します。


14. v1.2 公開版の実機確認
-------------------------
以下の主要項目は Windows 11 / 卓駆★ Ver.4.70i の実機で確認済みです。

  1. 画像ファイルを Enter で開ける
  2. 画像ファイルをダブルクリックで開ける
  3. TXT / PDF / ZIP が従来どおり動く
  4. フォルダーで Enter / ダブルクリックしたとき従来どおり移動できる
  5. 日本語、空白、&、#、%、+ を含む画像ファイル名を開ける
  6. Viewer= を変更して画像ビューアーを切り替えられる
  7. 卓駆★起動時に Helper が1プロセスだけ起動する
  8. 卓駆★終了時に Helper が終了する
  9. 卓駆★を再起動すると Helper が再び起動する
 10. Ctrl+A / Ctrl+Z の既存設定を変更せず動作する
 11. C:\TACImageViewer 配置で「アプリを選択」が表示されず、Viewer= で指定したビューアーが起動する
 12. Helper を再起動しても以前の Helper ログが残り、新しい session started 行が追記される
 13. Viewer 起動を意図的に失敗させた場合、「アプリを選択」ではなく TACImageViewer のエラー表示になる

公開版では上記に加え、Helper が一時的に存在しない場合の Watcher の再試行を
5秒間隔に制限し、同じ起動エラーの連続記録を抑制する最終調整を行っています。

15. トラブルシューティング
-------------------------
画像を開いたとき「アプリを選択」が表示される場合:
  ・C:\TACImageViewer\TACImageViewer.ini が存在するか確認してください。
  ・Viewer= が1行だけ有効になっているか確認してください。
  ・画像ビューアーの EXE パスが正しいか確認してください。
  ・画像ビューアーに「管理者としてこのプログラムを実行する」が設定されていないか確認してください。
    ［すべてのユーザーの設定を変更］側も確認してください。

画像ビューアーの起動に失敗した場合:
  ・v1.2 では TACImageViewer のエラーダイアログを表示し、卓駆★の「開く」には戻しません。
  ・%TEMP%\TACImageViewer_Helper.log の viewer_error= を確認してください。

Watcher ログに Helper start failed と表示される場合:
  ・C:\TACImageViewer\TACImageViewer_Helper.exe が存在するか確認してください。
  ・Watcher は5秒おきに再試行します。同じエラーの連続記録は抑制されます。
  ・Helper を正しい場所へ戻せば、通常は Watcher を再起動せず自動復旧します。

16. セキュリティ上の注意
------------------------
・Helper は低レベルキーボードフックと低レベルマウスフックを使用します。
・通常は管理者権限を必要としません。
・卓駆★を管理者権限で起動する場合は、TACImageViewer も同じ権限で起動してください。画像ビューアーの権限設定も確認してください。
・外部ネットワーク通信を行うコードは含まれていません。
・画像ファイルのパスは設定した画像ビューアーまたは Microsoft フォトへ渡します。
・無署名 EXE のため、Windows SmartScreen やセキュリティ製品が警告する場合があります。
・警告回避のためにウイルス対策ソフトを無効にすることは推奨しません。


17. アンインストール
--------------------
1. タスク スケジューラに登録した TACImageViewer のタスクを停止・削除します。
2. TACImageViewer_Watcher.exe を終了します。
3. TACImageViewer_Helper.exe が残っていれば終了します。
4. 配置した2本の EXE と TACImageViewer.ini を削除します。
5. %TEMP% の TACImageViewer_*.log は削除して構いません。

卓駆★本体や画像ビューアー本体を削除する必要はありません。


18. SHA-256
-----------
SHA256.txt には配布ファイルの SHA-256 ハッシュ値を記載しています。
配布物の破損・改変確認に利用できます。

Windows のコマンドプロンプトでは、例えば次のように確認できます。

  certutil -hashfile "TACImageViewer_Helper.exe" SHA256


19. ソースとビルド
------------------
Go ソースは src\ に含まれています。
ビルド方法は BUILD.txt を参照してください。

v1.2 では Enter と DblClick の処理を cmd\helper に統合しました。
両処理が同時に発生した場合に、卓駆★へのコマンド送信とクリップボード処理が競合しないよう
共通の排他制御を行っています。


20. 開発について
----------------
本ソフトウェアは OpenAI の ChatGPT Plus を利用して、設計・プログラミング・デバッグの
支援を受けながら作成しました。
実機でのテスト、採用する動作仕様、設定の確認、公開の判断は作者が行っています。

本ソフトウェアは OpenAI の公式製品・公認ソフトウェアではありません。


21. ライセンス・免責
--------------------
TACImageViewer 本体のライセンスは LICENSE.txt を参照してください。
Go ランタイム等の表示は THIRD_PARTY_NOTICES.txt を参照してください。

本ツールは無保証で提供されます。使用にあたっては重要なデータをバックアップし、
利用者自身の環境で動作を確認してください。
