﻿==============================================================================
  TargetWindowCtrlApp（ランタイム必須版）
------------------------------------------------------------------------------
  バージョン : 1.0.0
  作成・著作 : かせー(kasei)
  種別       : フリーソフトウェア（利用規約は LICENSE.txt を参照）
  配布場所   : https://github.com/kasei-s/TargetWindowCtrlApp-distribution
  ソース     : https://github.com/kasei-s/TargetWindowCtrlApp
  連絡先     : kasei_s@nifty.com
==============================================================================

■ 概要
  指定したアプリケーションのウィンドウに対して、タイトルバー・枠の
  表示/非表示、位置、サイズを変更するツールです。
  設定は JSON ファイルに保存でき、読み込んで［適用する］を押すだけで
  同じ状態にできます。

  このパッケージは、.NET ランタイムを含まない「ランタイム必須版」です。
  exe が小さい代わりに、PC に .NET デスクトップ ランタイム 10.0 の
  インストールが必要です。
  ランタイムをインストールしたくない場合は、「ランタイム同梱版」を
  お使いください（機能は同じです）。

■ 動作環境
  ・Windows 10 / Windows 11
  ・64bit 版（ファイル名が win-x64）… 64bit の Windows
    32bit 版（ファイル名が win-x86）… 32bit / 64bit の Windows
    ※64bit の Windows では 64bit 版をおすすめします。
      32bit 版でも、64bit アプリのウィンドウを操作できます。
  ・.NET デスクトップ ランタイム 10.0（10.0.x のいずれか）
      64bit 版には x64 用、32bit 版には x86 用のランタイムが必要です。
      （64bit の Windows で 32bit 版を使う場合も、x86 用が必要です）

■ .NET デスクトップ ランタイムのインストール
  1. 次のページを開きます。
       https://dotnet.microsoft.com/download/dotnet/10.0
  2. 「.NET デスクトップ ランタイム 10.0.x」の「Windows」の欄から、
     64bit 版を使う場合は「x64」、32bit 版を使う場合は「x86」の
     インストーラーをダウンロードして実行します。
     （「.NET ランタイム」や「ASP.NET Core ランタイム」だけでは
       起動できません。「デスクトップ ランタイム」を選んでください）

  インストール済みかどうかは、コマンドプロンプトで次のように入力すると
  確認できます（Microsoft.WindowsDesktop.App 10.0.x が表示されれば
  インストール済みです）。
    dotnet --list-runtimes

  ランタイムが無い状態で TargetWindowCtrlApp.exe を起動すると、
  .NET のインストールを求めるメッセージが表示されます。そのメッセージの
  ボタンからダウンロードページを開くこともできます。

■ 同梱ファイル
  TargetWindowCtrlApp.exe   本体（.NET ランタイムは含みません）
  README.txt                このファイル（説明書）
  README.md                 説明書の Markdown 版（内容は README.txt と同じ）
  HELP.html                 ヘルプ（ブラウザーで開きます。画面の説明・困ったときは など）
  LICENSE.txt               利用規約
  THIRD-PARTY-NOTICES.txt   サードパーティ製ソフトウェアのライセンス表示

■ インストール / アンインストール
  .NET デスクトップ ランタイムをインストールしたうえで、同梱ファイルを
  任意のフォルダに置き、TargetWindowCtrlApp.exe を起動してください。
  本ソフトウェアのインストール作業は不要です。
  削除する場合は、フォルダごと削除し、保存した JSON ファイルも削除して
  ください。レジストリは使用しません。
  .NET デスクトップ ランタイムは、ほかのアプリも使用していることがある
  ため、不要な場合のみ Windows の「インストールされているアプリ」から
  削除してください。

■ 使い方
  ※画面の各部の説明や詳しい使い方は、HELP.html をブラウザーで開いて
    ご覧ください。

  1. TargetWindowCtrlApp.exe を起動します。

  2. ［操作対象ｳｨﾝﾄﾞｳ(Target Window)］を押し、一覧から操作したい
     ウィンドウを選んで［OK］を押します。
     現在の位置（X Pos / Y Pos）とサイズ（Width / Height）が入ります。

     ※一覧に目的のウィンドウが無いときは、［Main process only］の
       チェックを外してから、もう一度押してください。

  3. 変更したい項目にチェックを入れ、値を入力します。
       ［Position］            X Pos / Y Pos の位置に移動します
       ［Size］                Width / Height のサイズにします
       ［ﾀｲﾄﾙﾊﾞｰを隠す］      タイトルバーと枠を外します
                               （チェックを外して適用すると元に戻ります）

     ※タイトルバーありの場合、Width / Height は「中身（クライアント
       領域）」のサイズです。タイトルバーなしの場合は「ウィンドウ全体」
       のサイズです。
     ※X Pos / Y Pos は、メインモニターの左上を (0,0) としたウィンドウ
       左上の座標です。マイナスの値も入力できます。

  4. ［適用する(Apply)］を押します。

  5. 次回も同じ設定を使う場合は［保存(Save)］で JSON ファイルに保存
     します。次回は［読み込み(Read)］でファイルを開き、［適用する］を
     押してください。

■ 設定ファイル（JSON）の例
  {"ProcessName":"VRChat","WindowClassName":"UnityWndClass",
   "WindowName":"VRChat","WindowXPos":0,"WindowYPos":0,
   "WindowWidth":1920,"WindowHeight":1080,"DefaultWindowStyle":349110272,
   "IsTitlebarLess":true,"UsePosition":true,"UseSize":true}

  ※旧バージョンで保存したファイル（"IsTaitlebarLess"）も読み込めます。
  ※ランタイム同梱版と同じ形式です。どちらの版で保存したファイルも
    読み込めます。

■ 困ったときは
  ・起動すると .NET のインストールを求めるメッセージが表示される
      .NET デスクトップ ランタイム 10.0 がインストールされていないか、
      CPU の種類（x64 / x86）が合っていません。
      「.NET デスクトップ ランタイムのインストール」の手順で、使う版に
      合ったランタイムをインストールしてください。
      インストールしたくない場合は、ランタイム同梱版をお使いください。

  ・「操作指定されたウィンドウが見つかりません。」と表示される
      対象アプリが起動していないか、ウィンドウのタイトルが変わって
      います。［操作対象ｳｨﾝﾄﾞｳ］で選び直してください。

  ・［適用する］を押しても変わらない
      対象アプリが管理者権限で動作している場合は、TargetWindowCtrlApp.exe を
      右クリックし「管理者として実行」で起動してください。

  ・しばらくするとタイトルバーが元に戻る
      アプリ自身がウィンドウの状態を戻しています。もう一度［適用する］
      を押してください。

  ・サイズにチェックを入れられない
      Width / Height に 1 以上の値を入力してください。

  ・入力欄に貼り付けができない
      誤入力防止のため、数値の入力欄では貼り付けを無効にしています。

■ 注意事項
  ・対象ウィンドウは「ウィンドウクラス名」と「タイトル」の完全一致で
    探します。同じものが複数ある場合は最初に見つかったものが対象です。
  ・ほかのアプリやサービスの利用規約を守ってご使用ください。

■ 著作権・ライセンス
  Copyright (c) 2023-2026 かせー(kasei). All rights reserved.

  本ソフトウェアはフリーソフトウェアです。個人・法人、営利・非営利を
  問わず無料で使用できます。
  再配布、転載、改変したものの配布、販売などには作者の許可が必要です。
  本ソフトウェアの使用によって生じたいかなる損害についても、作者は
  責任を負いません。
  詳しくは LICENSE.txt（利用規約）を参照してください。

■ 使用しているオープンソースソフトウェア
  ランタイム必須版の TargetWindowCtrlApp.exe には、.NET ランタイムは
  含まれていません。実行時には、利用者がインストールした次のソフトウェア
  を使用します。
    ・.NET デスクトップ ランタイム 10.0（.NET Runtime と
      Windows Desktop Runtime（Windows Forms）。MIT License）
      Microsoft が提供しているもので、本パッケージには含まれません。

  また、開発には次のものを使用しています（exe には含まれません）。
    ・Microsoft.NET.ILLink.Tasks 10.0.12 … ビルドツール（MIT License）
    ・Windows Forms プロジェクト テンプレート … ひな形（MIT License）
    ・github/gitignore … .gitignore のひな形（CC0 1.0）

  ライセンス表示と、開発で参考にした技術情報の一覧は
  THIRD-PARTY-NOTICES.txt を参照してください。

■ 商標
  Microsoft、Windows、.NET は、米国 Microsoft Corporation の米国および
  その他の国における登録商標または商標です。
  VRChat は VRChat Inc. の、cluster はクラスター株式会社の商標または
  登録商標です。
  Unity は、米国およびその他の国における Unity Technologies または
  その関連会社の商標または登録商標です。
  その他、記載されている会社名・製品名は、各社の商標または登録商標です。
  本ソフトウェアは、これらの企業から承認・提携等を受けたものではありません。

■ 更新履歴
  Version 1.0.0（2026-09-14）
    ・.NET 10 に対応
    ・［適用する］を押すたびにウィンドウが大きくなる不具合を修正
    ・タイトルバーの表示/非表示がすぐに反映されない不具合を修正
    ・タイトルバーを戻すと、元々無かった枠が付く不具合を修正
    ・起動直後に［Size］へチェックを入れるとエラーになる不具合を修正
    ・入力欄を空にしても古い値が使われる不具合を修正
    ・設定ファイルのキー名を IsTitlebarLess に修正（旧キー名も読み込み可）
    ・ウィンドウ一覧の作成中にアプリが終了すると落ちることがある不具合を修正
    ・利用規約（LICENSE.txt）とライセンス表示（THIRD-PARTY-NOTICES.txt）を
      同梱
    ・32bit 版（win-x86）を追加
    ・ソフトウェア名を WindowCtrl から TargetWindowCtrlApp に変更
      （旧バージョンで保存した設定ファイルもそのまま読み込めます）
    ・アプリのアイコンを追加
    ・説明書の Markdown 版（README.md）を同梱
    ・ヘルプ（HTML 版、HELP.html）を同梱
    ・.NET ランタイムを含まないランタイム必須版を追加

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