人気ブログランキング | 話題のタグを見る

[ChatGPT] ウインドウのカスケード配置 (左上から斜め下へ重なるように) - タイル型や分割でなく [AutoHotkey v2] (3/1)

Windows 11 (25H2現在)では、タスクバーを右クリックして[重ねて表示]が出来ない。
画像のように、ウインドウを重なるように配置するのを、AutoHotkey v2で作成した。

[ChatGPT] ウインドウのカスケード配置 (左上から斜め下へ重なるように) - タイル型や分割でなく [AutoHotkey v2] (3/1)_a0034780_23411121.png

■ アプリ名
CascadeWindows.exe
CascadeWindows_Jp.exe(日本語版)

■ スクリプト名
CascadeWindows.ahk
CascadeWindows_Jp.ahk(日本語版)

■ ダウンロード

■ 機能・使い方
・アプリかスクリプトを実行
(アプリならそのまま起動、スクリプトならAutoHotkey v2のインストール要)
・F9:重ねて(カスケード)配置
・F10:ずらす高さや幅をアプリケーション毎に設定可能(保存ボタン/右上✖ボタンでキャンセル)
・ホットキー変更可能
・[リサイズ]チェックボックスON:「登録した」ウインドウサイズで全ウインドウをリサイズする
・[更新]ボタン:ずれやキーを即反映する
・[サイズ登録]ボタン:「最前面の」ウインドウサイズを登録する
・最小化・最大化・フルスクリーン・スナップ機能で配置したウインドウは対象外(F9や更新ボタンの再配置・GUIのアプリ選択肢・最前面登録から除外)

■ 終了(常駐終了)
・タスクトレイ-[H]アイコン右クリック-Exitを選択
設定画面
[ChatGPT] ウインドウのカスケード配置 (左上から斜め下へ重なるように) - タイル型や分割でなく [AutoHotkey v2] (3/1)_a0034780_16352229.png
アプリを選択:動作中のアプリから選ぶ(ただし最小化・最大化・フルスクリーンを除く)

デフォルト:24ピクセル
(ブラウザや設定画面は44、メモ帳やエクスプローラは高さ42、Windows Terminalは高さ40に設定するとタブが全部表示される)

※ Windowsシステムの設定画面は ApplicationFrameHost.exe を選択する。

■ ホットキーの書き方
Ctrl/Alt/Shift/Winキーは ^!+# を頭に付ける(例 Ctrl+Alt+F9 = ^!F9、Win+Shift+c = #+c)
※ AutoHotkeyの書式

■ 詳細
設定ファイルに保存され、その場でF9で反映される。
テキスト形式なので手書きも可能。
デフォルト値(Unregistered)を変更可能。
(初回設定ファイル無しの時は24で作成、デフォルト値は設定画面の「アプリを選択」が空の時)
保存/更新ボタンで登録(ずれはアプリ毎に登録する必要がある)

全てのウインドウを同じサイズにする場合(以下設定を開いたままで可能)
①最前面ウインドウを希望のサイズにする
②サイズ登録ボタンで登録
③リサイズをONにして更新ボタンを押す
※リサイズONのままだとF9を押した再配置の時毎回全ウインドウリサイズされるのでOFFにするとよい。

設定ファイルさえあれば毎回保存/更新/登録する必要はない。
(アプリやスクリプトと同じフォルダにcascade_offsets.iniで作成される)

■ 機能追加
v1.1の追加:
・一律でウインドウサイズを統一するオプション機能
・連続して設定できる更新ボタン
v1.2の追加:
・バグ修正・コメント復活
・デフォルト値をGUIで書き換え可能(アプリ選択が空の時)
・exe形式も提供(AutoHotKey v2インストール不要)
v1.3の追加:
・チェックボックスは、リサイズするかどうかだけにした
・[更新]ボタンから最前面のサイズ取得機能を[最前面をサイズ登録]するボタンへ移動
・[最前面をサイズ登録]ボタンにサイズを設定ファイルに登録する機能を追加
・ソースリファクタリング
v1.4の追加:
・キーバインド変更可能
・設定画面見直し
- リサイズ・サイズ登録にボタン変更
- ヘルプ追加


ウインドウサイズを揃えた(リサイズ)した場合
[ChatGPT] ウインドウのカスケード配置 (左上から斜め下へ重なるように) - タイル型や分割でなく [AutoHotkey v2] (3/1)_a0034780_18525364.png

■ スクリプト→exe形式への変換
AutoHotkey v2はexe形式に出来るからAutoHotkey未インストールでも実行可能。
GitHubのexe形式は、ツールAhk2ExeでAutoHotKey v2.0.21 64bitでコンパイル済み。

◇◇◇

ChatGPTで作成。
事前に「カスケード配置」というキーワードを見つけたのが良かった。
ソースが長くなると途中で指示を忘れて勝手に最適化してしまうので一気にやるか、毎回元のソースを与えて細かく指示をする。
※ ソースが読めてある程度理解できれば、作成時間は平均して1/4から1/3くらいに短縮される。

P.S.
Windows Terminalの複数ウインドウを含め整理整頓したかった。
アプリ毎に高さが違うのと勝手にリサイズされないようにしたかったが、なかなか使えるものができた。

※ Windows 10では[重ねて表示]が標準機能だった。今もPowerShellで可能だが、高さは一律でウインドウサイズも全画面にリサイズされてしまう。

PowerShellのスクリプト:

# Define the CascadeWindows function from USER32.dll
Add-Type @"
using System;
using System.Runtime.InteropServices;

public class User32 {
[DllImport("user32.dll", SetLastError = true)]
public static extern int CascadeWindows(IntPtr hwndParent, uint wHow, IntPtr lpRect, uint cKids, IntPtr[] lpKids);
}
"@

function Cascade-Windows {
[User32]::CascadeWindows([IntPtr]::Zero, 0, [IntPtr]::Zero, 0, $null)
}

(cascade-window.psで保存またはPSプロンプトで実行)


※ 注意 ※
ディスプレイ拡大率150%の時は、ずれ幅も100%とは少々変わるので正確にやるなら別に設定する(exeやスクリプトを別々のフォルダに置いてそれぞれショートカットを作成すればよい)。

あくまでもWindows OS管理下のウインドウだけなので、WSL2などのX-WindowによるX系クライアントは、整列はされるがキーやマウス操作不可になる。カスケード配置はX系クライアント起動前に行う事。

Ahk2Exeは、AutoHotKey v2 (v2.021版)をインストールオプションでCompilerを選択してインストールする。
.ahkファイルのエクスプローラ右クリックに[Compiler Script(GUI)...]が追加されるのでそれでコンパイルした。
[ChatGPT] ウインドウのカスケード配置 (左上から斜め下へ重なるように) - タイル型や分割でなく [AutoHotkey v2] (3/1)_a0034780_12050443.jpg
P.S.2
課題:
・最初にずらすウインドウが数ピクセル右にずれている
不可視ウインドウによるものか、実際に除外し切れていないウインドウがあるのか、その両方かは調査しないとわからない。ずれるピクセル数は個人設定のテーマやアプリの種類でも変わる(Windows Terminalが最初に来るとピクセル数が多いので目立つ)。
・全画面表示とフルスクリーン表示の違い
・マルチディスプレイ対応
・「タスクバーを自動的に隠すがOFF」だと全画面表示も整列させられてしまう。サイズ登録の対象になってしまう
・設定画面表示中にF10で複数設定画面を表示してしまう




by k1segawa | 2026-03-01 23:51 | ChatGPT,GPT-4 | Comments(0)