FistRunner  Readme

■ソフトの概要
FistRunner は、Fist Studio で作成した自動操作スクリプトをカラム式パネルに登録し、
クリックから最短で実行する専用ランチャーです。画面を持たずバックグラウンドで動作し、
結果はログに出力します。
操作説明の詳細は、本文「■アンインストール方法」の次の章に記載しております。

■作品番号
SR509301

■作者への連絡先
・作者名
廉谷三千彦

・メールアドレス
a800xslt2@gmail.com

■取り扱い種別
シェアウェア
お試し期間14日を過ぎて継続してご利用される場合
Vector シェアレジでライセンスキーをご購入のうえ
取得されたライセンスキーをアプリのライセンス登録画面へご指定ください。

■ライセンスキー価格
金額　4,980円

■動作環境
.NET 9 ランタイムを同梱 (.NET インストール不要)しています。
OS: Windows 10 / 11 (64bit)

■インストール方法
ZIPファイルを解凍すると、「製品名+日付+バージョン番号.exe」と
Readme.txt の2つのファイルが現れます。
Readme.txt は、製品の説明です。
インストールするには、
「製品名+日付+バージョン番号.exe」をダブルクリックしてください。

■インストール時の Windows 警告について
本ソフトは無署名のため、ダウンロードした exe を実行する際に
Windows SmartScreen / Defender が警告を表示する場合があります。
画面の「詳細情報」→「実行」で続行できます。
本ソフトは外部送信・自動更新・キーロガー等の動作は一切行いません。

■アンインストール方法
「コントロール パネル」->「プログラム」->「プログラムと機能」に表示されている
(名前) 製品名+日付+バージョン番号 (発行元 廉谷三千彦) を選択して
右クリックしてアンインストールしてください。
(仮に、最初にダウンロードしたときのZIPファイルや解凍したフォルダーがあれば
これらも削除お願いします。)


============================================================


FistRunner 操作マニュアル
============================================================

Vector レジ作品番号: SR509301
バージョン: 2026-v001.02
対象 OS: Windows 10 / 11 (.NET 9 ランタイム)
最終更新: 2026-07-02

--------------------------------------------------


目次
--------------------------------------------------

1. はじめに
2. 画面と基本操作
3. スクリプト編集ダイアログ
4. スクリプト実行とログ
5. 検索とホバープレビュー
6. ファイル操作とパネル切替
7. 表示カスタマイズ
8. キーボードショートカット一覧
9. 使い方の例
10. データと互換性
11. トラブルシューティング

--------------------------------------------------


1. はじめに
--------------------------------------------------


■ FistRunner とは

FistRunner は、Fist Studio で完成した Fist スクリプト (Ncmd1.txt 形式) を業務/用途別に配置管理し、最短経路で実行するための独立アプリケーションです。

・ 画面はパネル式 (KadoMemo の操作性を完全踏襲)
・ 各セルは「スクリプト名」を表示するクリック可能なラベル
・ クリックすると編集ダイアログが開き、その中の ▶▶ 実行 ボタンで起動


■ なぜ FistRunner が必要か

Fist Studio はスクリプトを 作る ための環境です。完成したスクリプトを日常的に 使う ためには、別の専用ツールが必要でした。

  場面                   | Fist Studio                   | FistRunner                
  新規スクリプト作成     | ◎ 単体テスト + 全体実行       | ✕                         
  完成スクリプトの即起動 | △ Studio を立ち上げる必要あり | ◎ クリック → 実行ボタン   
  複数スクリプトの俯瞰   | ✕                             | ◎ カラム式パネル          
  バックグラウンド実行   | △ Studio 画面が残る           | ◎ 親フレームごと閉じて実行


■ Fist Studio との関係 (Fist Studio Suite)

FistRunner は将来、Fist Studio と同じインストーラーに同梱され、Fist Studio Suite として配布される予定です。

    Fist Studio Suite
    ├ Fist Studio  ← 編集・REPL 環境 (スクリプトを作る)
    └ FistRunner   ← 実行ランチャー (スクリプトを日常的に使う)

完成したスクリプトの最終形は FistRunner で完結します。

--------------------------------------------------


2. 画面と基本操作
--------------------------------------------------


■ 画面構成

    ┌────────────────────────────┐
    │ scripts.fistrun (既定) — FistRunner 2026-v001.00      │ ← タイトルバー
    ├────────────────────────────┤
    │ ファイル(F)  編集(E)  表示(V)  ヘルプ(H)               │ ← メニューバー
    ├────────────────────────────┤
    │ 🔍 検索: [          ] ✕ クリア ↑前へ ↓次へ           │ ← 検索バー (常時表示)
    ├────────────────────────────┤
    │ 1: 業務A    │ 2: 業務B    │ 3: 雑用      │ ...      │ ← カラム見出し
    │             │             │              │          │
    │ スクリプト1 │ スクリプト4 │ スクリプトX  │          │ ← クリックで編集ダイアログ
    │  [12 行]    │  [8 行]     │  [3 行]      │          │   (右クリックも同じ)
    │ スクリプト2 │ スクリプト5 │              │          │
    │  [25 行]    │  [4 行]     │              │          │
    └────────────────────────────┘


■ スクリプトを追加する

1. メニュー → 編集(E) → スクリプト追加(L)... を選ぶ
2. 追加先カラム番号 (1〜) を入力
3. スクリプト名・色・属性を設定 → OK
4. スクリプト編集ダイアログが自動的に開く
5. FistStudio で完成させた Ncmd1.txt の 全文 を貼り付ける
6. [保存] ボタンで .fistrun ファイルに書き戻し

カラム空白部分を右クリック → 「このカラムにスクリプト追加」でもカラム指定なしで追加できます。


■ スクリプトを編集する

スクリプト名を 左クリック すると編集ダイアログが開きます。右クリック → 「▶ 編集 (スクリプト本文を開く)...」も同じ動作です。


■ スクリプトを実行する

スクリプト名クリック → 編集ダイアログ → [▶▶ 実行] ボタン押下。

詳細は 4. スクリプト実行とログ を参照。


■ スクリプトを移動・削除する

スクリプト名を右クリック:

・ 「移動 → ↑ 上へ / ↓ 下へ / ⇈ 先頭へ / ⇊ 末尾へ」
・ 「完全削除...」(確認ダイアログあり)


■ カラム見出しを設定する

カラムの空白を右クリック → 「カラム見出しを設定」または、メニュー → 編集(E) → カラム見出しを設定(H)...

業務別 (例: 経理処理 顧客対応 バックアップ ) でカラム見出しを付けると、認知地図として機能します。

--------------------------------------------------


3. スクリプト編集ダイアログ
--------------------------------------------------


■ レイアウト

    ┌───────────────────────────────────────┐
    │ スクリプト編集 — テスト                  │
    ├───────────────────────────────────────┤
    │ スクリプト名 [テスト              ]  サイズ [10.5pt ▼] │
    │ 🔍 検索: [        ] ✕ クリア ↑前へ ↓次へ  │
    ├───────────────────────────────────────┤
    │ "(1) 認証          ",0,"GUEST"           │
    │ "(2) ログ          ",0,"Ncmd1.log"       │ ← 1〜4 行目: 必須ヘッダー
    │ "(3) 後続なし      ",0,"-"               │
    │ "(4) 基本速度初期値",3000,"-"            │ ← (4) のみ動作に反映
    │ "============ ↑必須ヘッダー / ↓本体 ============",0,"!MSG" │
    │                                          │
    │ "",4000,"Hello, World!{ENTER}"           │ ← 6 行目以降: 実行本体
    │                                          │
    ├───────────────────────────────────────┤
    │ 8 行 / 216 文字                          │
    │ ■ 必須ヘッダーについて注意                │
    │ (4)基本速度初期値は、動作へ反映していますが、 │
    │    他の(1)から(3)の指定は、無視しています。  │
    │        [▶▶ 実行][✕ 本文クリア][保存][閉じる] │
    └───────────────────────────────────────┘


■ 必須ヘッダー (1〜5 行目) の扱い

  行 | 1999 年版 FIST の意味          | FistRunner での扱い                       
  1  | 認証 (ライセンスキィ)          | 無視 (シェアウェア機構廃止)               
  2  | ログファイル名 (例: Ncmd1.log) | 無視 (FistRunner 独自パス固定)            
  3  | 後続ファイル名                 | 無視 (連続実行未実装)                     
  4  | 基本速度初期値 (ms)            | ✅ 動作へ反映 (個別行 waitMs=0 のとき適用)
  5  | パーティション                 | コメント (実行されない)                   

つまり Ncmd1.txt をそのままコピペしても、(2) Ncmd1.log 指定は無視されて FistRunner 独自のログファイル名で出力されます。


■ 本文編集領域の特性

・ 等幅フォント (Consolas) で表示 → Ncmd1.txt の縦揃いが保てる
・ WordWrap=false → 長い行は折り返さず横スクロール
・ フォントサイズ変更可 (8〜20pt、選択値は次回起動時にも反映)
・ AcceptsTab=true → タブ文字を本文に入力可


■ 文字列検索 (Ctrl+F)

編集ダイアログ内の検索バーで本文を対象に文字列検索できます。

・ 全件ハイライト
・ ヒット件数表示 (例: 3 / 8 件)
・ Enter / Shift+Enter / ↑↓ ボタン / F3 で移動
・ Esc でクリア


■ 行数 / 文字数表示

下部に常時表示。スクリプトの規模が一目でわかります。


■ ボタン

  ボタン        | 動作                                                                                           
  ▶▶ 実行       | 編集を保存 → ダイアログを閉じる → 親フレームを Hide してバックグラウンド実行 → 完了後アプリ終了
  ✕ 本文クリア  | 編集領域を空にする (保存ボタンを押さない限り .fistrun は変わらない)                            
  保存 (Ctrl+S) | 編集内容を .fistrun に書き戻してダイアログを閉じる                                             
  閉じる        | 編集を破棄して閉じる (保存しない)                                                              

--------------------------------------------------


4. スクリプト実行とログ
--------------------------------------------------


■ 実行フロー

    スクリプト編集ダイアログ
        │
        │ [▶▶ 実行] 押下
        ▼
    編集内容を .fistrun に保存
        │
        ▼
    編集ダイアログを閉じる
        │
        ▼
    親フレーム (MainForm) を Hide ── ユーザー視点では FistRunner が消える
        │
        ▼
    ScriptExecutor.RunAsync (バックグラウンド)
        ├ Documents\FistRunner\yyyymmdd_hhmmss_FistRunner.log.txt を作成
        ├ ヘッダー (4) から基本速度を取得
        ├ 6 行目以降を順次実行
        │     ├ コマンドが対象画面を必要とする場合: !GFC で設定されていなければ
        │     │   GetForegroundWindow() を暫定対象として採用
        │     └ ScriptRunner.ExecuteCommand (40 コマンド対応)
        └ ログに完了/エラーを記録
        │
        ▼
    Application.Exit (FistRunner プロセス終了)


■ ログファイル

出力先: Documents\FistRunner\yyyymmdd_hhmmss_FistRunner.log.txt
1 実行 1 ファイル (上書きしない、毎回新規)

    [18:22:07.426] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    [18:22:07.428] FistRunner スクリプト実行ログ
    [18:22:07.428] スクリプト名: テスト
    [18:22:07.430] 開始時刻:     2026-06-17 18:22:07
    [18:22:07.430] 実行行数:     1
    [18:22:07.430] ログ出力先:   C:\...\Documents\FistRunner\20260617_182207_FistRunner.log.txt
    [18:22:07.430]   ※ ヘッダー 2 行目の "Ncmd1.log" 等の指定は FistRunner では無視され、
    [18:22:07.438]      常に Documents\FistRunner\yyyymmdd_hhmmss_FistRunner.log.txt に出力されます。
    [18:22:07.439] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    [18:22:07.439] 基本速度 (4 行目): 3000ms (個別指定優先、!CTM で途中変更可)
    [18:22:07.439] [1/1] 4000ms 待機 (個別) → Hello, World!{ENTER}
    [18:22:11.458]   対象画面未設定 → フォアグラウンドを暫定対象: "(無題)(更新) - 秀丸"
    [18:22:12.153] 文字列送信: Hello, World!{ENTER}
    [18:22:12.153] スクリプト実行完了
    [18:22:12.153] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    [18:22:12.153] 終了時刻: 2026-06-17 18:22:12
    [18:22:12.153] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


■ 対象画面 (Target Window) の決定方針

スクリプト内のコマンドが対象画面を必要とする場合 (マウス系・キー入力系)、FistRunner は以下の順で対象を決定します:

1. スクリプト内に !GFC<タイトル文字列> がある場合 → そのウィンドウ
2. !SH1〜!SH5 でスロット保存されたウィンドウ
3. 上記いずれも未指定の場合 → 現在のフォアグラウンドウィンドウを暫定対象として採用
4. フォアグラウンドも取得できない場合 → その行をスキップしてログに記録

業務スクリプトを書く際は !GFC で対象画面を明示するのを推奨します。


■ 二重起動の防止

実行中に別のスクリプトを起動しようとすると、案内ダイアログが出て弾かれます。1 実行 1 プロセス。


■ 致命エラー時の挙動

実行ロジック自体が例外を投げた場合のみ、終了前に MessageBox で通知します。詳細はログファイル参照。それ以外の通常エラー (1 行だけ失敗等) はログだけに記録され、画面通知はありません。

--------------------------------------------------


5. 検索とホバープレビュー
--------------------------------------------------


■ メイン画面の検索

メイン画面の検索バーは 常時表示 (作者の設計哲学「隠していると同じ」)。検索対象は:

・ スクリプト名 (RunnerItem.Label)
・ カラム見出し (RunnerColumn.Header)

スクリプト本文は対象外 (カラム見出しで認知地図を作る運用)。


■ 検索の操作

  操作                     | キー / 動作                    
  検索ボックスへフォーカス | Ctrl+F                         
  次のヒットへ             | Enter / F3 / ↓ 次へ            
  前のヒットへ             | Shift+Enter / Shift+F3 / ↑ 前へ
  クリア                   | Esc / ✕ クリア                 


■ ハイライトの追従

検索中にスクリプトの編集・移動・削除を行っても、ハイライトのカーソルは同じスクリプトに張り付いて追従します。


■ ホバープレビュー

スクリプト名にマウスホバーすると、本文の先頭 20 行 (または 1500 文字) を等幅フォントで表示するプレビューが出ます。Consolas で縦揃いを保ったまま読めます。

--------------------------------------------------


6. ファイル操作とパネル切替
--------------------------------------------------


■ .fistrun ファイル

FistRunner のデータは .fistrun 拡張子で保存されます (中身は JSON テキスト)。

・ 既定パス: Documents\FistRunner\scripts.fistrun
・ 業務別に複数ファイルを使い分け可 (例: morning.fistrun night.fistrun)


■ ファイルメニュー

  項目                      | ショートカット | 動作                                                                                                   
  新規(N)                   | Ctrl+N         | 確認後、日時入りの新ファイル scripts_日時.fistrun で空のスクリプト集を作成 (既存ファイルは上書きしない)
  スクリプト集を開く(O)...  | Ctrl+O         | 別の .fistrun を開く                                                                                   
  スクリプト集を保存(S)     | Ctrl+S         | 明示的に保存 (自動保存もあり)                                                                          
  名前を付けて保存(A)...    | Ctrl+Shift+S   | 別ファイル名で保存                                                                                     
  最近使ったスクリプト集(R) | (動的構築)     | MRU から選択 (Alt+1〜0)                                                                                
  前のパネル(P)             | Ctrl+PgUp      | 同フォルダ内の前ファイル                                                                               
  次のパネル(E)             | Ctrl+PgDown    | 同フォルダ内の次ファイル                                                                               
  保存先フォルダを開く(L)   | —              | エクスプローラで開く                                                                                   
  終了(X)                   | Alt+F4         | アプリ終了                                                                                             


■ 自動保存

スクリプト名の変更・追加・削除・移動・カラム見出し変更などすべての編集は、即座に現在の .fistrun に自動保存されます。明示的な「保存」ボタンは慣習的なものです。


■ パネル切替 (Ctrl+PgUp / PgDown)

同じフォルダ内の *.fistrun をファイル名順で巡回します。_01_朝.fistrun _02_昼.fistrun のように番号プレフィックスで並び順を制御できます。

--------------------------------------------------


7. 表示カスタマイズ
--------------------------------------------------


■ 表示メニュー

  項目                        | 動作                                     
  背景色を変更(B)...          | カラム全体の背景色 (デフォルト SteelBlue)
  カラム数を設定(C)...        | 1〜20 カラム                             
  カラム幅を設定(W)...        | 80〜600 px (デフォルト 200)              
  カラム間の区切り線を表示(G) | グリッド線の ON/OFF                      


■ カラム見出しの個別カスタマイズ

カラム空白部分を右クリック → 「カラム見出し色を変更...」で、カラムごとに見出しの色を変えられます。業務カテゴリーを色で区別する運用に。


■ スクリプトごとの表示属性

スクリプト名を右クリック → 「スクリプト名 / 色 / 表示属性を変更...」で:

・ 文字色
・ 太字
・ 下線 (強調マーカー)
・ リバース (頻出強調: 文字色と背景色を反転)


■ カラム番号表示

各カラム見出しの先頭に「1:」「2:」のように番号が付きます。右クリックメニューの「カラム N に追加」と画面上の位置が対応します。

--------------------------------------------------


8. キーボードショートカット一覧
--------------------------------------------------


■ ファイル操作

  キー         | 動作                  
  Ctrl+N       | 新規                  
  Ctrl+O       | 開く                  
  Ctrl+S       | 保存                  
  Ctrl+Shift+S | 名前を付けて保存      
  Alt+F4       | 終了                  
  Alt+1〜9, 0  | 最近使ったファイル切替


■ パネル切替

  キー        | 動作                  
  Ctrl+PgUp   | 同フォルダ内の前パネル
  Ctrl+PgDown | 同フォルダ内の次パネル


■ 検索 (メイン画面 / 編集ダイアログ共通)

  キー                   | 動作                    
  Ctrl+F                 | 検索ボックスへフォーカス
  Enter / F3             | 次のヒット              
  Shift+Enter / Shift+F3 | 前のヒット              
  Esc                    | クリア                  


■ 編集ダイアログ

  キー   | 動作                          
  Ctrl+S | 保存 (▶▶ 実行ではないので注意)
  Esc    | (検索中のみ) クリア           

--------------------------------------------------


9. 使い方の例
--------------------------------------------------


■ A. 朝の業務開始ルーチン

毎朝決まった順序でアプリを開く・ログインするスクリプトを 1 つに集約。

・ パネル: morning.fistrun
・ スクリプト名: 日次ログイン メール開封 今日のタスク表示
・ カラム見出し: 1: 起動系 2: 確認系


■ B. 顧客対応の定型処理

顧客 ID をクリップボードに入れた状態でクリックすると、CRM システムに ID を入力して検索画面を開くスクリプト。

・ パネル: customer.fistrun
・ カラム見出し: 1: 検索 2: 登録 3: 帳票


■ C. インストーラー検証 (新規 PC セットアップの自動化)

新規 PC のセットアップ手順を自動化するスクリプトを 1 つのパネルに集約。クリック → 実行ボタンで各工程を起動。

・ パネル: install_check.fistrun
・ カラム見出し: 1: 前提確認 2: インストール 3: 設定 4: テスト


■ D. 時間がかかる業務の予約実行

!STA が未実装な現状では、夜中まで PC を立ち上げておく業務 (バッチ確認等) を 1 クリックで起動できる形で配置。


■ E. デモ / プレゼンの自動操作

イベント当日に PC 操作の手元を見せず、クリック 1 つで連続スクリーン操作を起動する用途。

--------------------------------------------------


10. データと互換性
--------------------------------------------------


■ .fistrun ファイルの中身

.fistrun は JSON テキストです。エディタで開いて手編集も可能 (バックアップ推奨)。

    {
      "BackgroundColor": "#4682B4",
      "DefaultTextColor": "#FFFFFF",
      "ColumnCount": 8,
      "ColumnWidth": 200,
      "Columns": [
        {
          "Header": "1: 起動系",
          "HeaderColor": null,
          "Items": [
            {
              "Label": "テスト",
              "Script": "\"(1) 認証         \",0,\"GUEST\"\n\"(2) ログ          \",0,\"Ncmd1.log\"\n... (Ncmd1.txt 全文)",
              "TextColor": null,
              "Bold": false,
              "Underline": false,
              "ReverseColors": false
            }
          ]
        }
      ],
      "ShowGridLines": false
    }


■ FistStudio との連携

1. FistStudio でスクリプトを作る → ファイル保存
2. 出力された Ncmd1.txt を開いて全文コピー
3. FistRunner で新規追加 → 編集ダイアログにペースト → 保存
4. 日常的にはクリック → 実行ボタンで起動


■ バックアップ

Documents\FistRunner\ フォルダ全体をコピーすれば設定 + データ + ログがそろってバックアップできます。


■ 別 PC での利用

.fistrun を別 PC へコピー → FistRunner で開く → そのまま動きます。設定 (ウィンドウサイズ等) は %AppData%\FistRunner\settings.json に分離されているので、PC ごとに最適化されます。

--------------------------------------------------


11. トラブルシューティング
--------------------------------------------------


■ .NET 9 ランタイムが必要

FistRunner.exe は .NET 9 デスクトップランタイムを要求します。起動時にエラーが出る場合は Microsoft 公式から .NET Desktop Runtime 9.x (Windows x64) をインストールしてください。


■ ▶▶ 実行ボタンが押せない

編集ダイアログを右クリックメニュー以外の経路から開いた場合 (将来仕様)、実行ボタンが無効化されることがあります。通常は左クリック or 右クリック →「編集」で開けば押せます。


■ 対象画面が取れない

スクリプトが「対象画面未設定 → フォアグラウンドを暫定対象」とログに出る場合、想定外のウィンドウがフォアグラウンドにあった可能性があります。スクリプト先頭に !GFC<目的のウィンドウタイトル> を入れて明示してください。


■ Ctrl+PgUp/PgDown が反応しない

同フォルダ内に .fistrun が 2 個以上あることが条件です。1 個しかない場合は無反応。


■ 設定が保存されない

%AppData%\FistRunner\ への書き込み権限がない環境では設定が永続化されません。一般ユーザー権限で起動してください。


■ ログファイルが大量に溜まる

実行のたびに新規ファイルが作られるため、定期的に古いログを削除してください。ファイル名は yyyymmdd_HHmmss_FistRunner.log.txt なのでファイル名ソートで時系列管理できます。


■ 二重起動エラー

「別のスクリプトが実行中です」と出る場合、前回の実行が完了していません。完了するか、タスクマネージャで FistRunner.exe プロセスを終了してください。

