今までこのブログに書いていたやつが1つに集約。例によってなんらかのランチャーから起動することを前提にしています。無駄に常駐アプリを増やしたくないんですね。デスクトップにショートカットをおいてホットキーを設定して実行すると正常に動かない場合があるようでした。ご利用の際は自己責任でどうぞ。
;WindowExtMenu.ahk v0.3 mino90 #NoTrayIcon #SingleInstance IGNORE WinGet, h, ID, A Menu, 1, add, フォルダを開く(&O) Menu, 1, add, 最前面(&T) Menu, 1, add ;特定のウィンドウに対して行うと変な状態になる場合があるので回避しておく WinGet,PN,ProcessName,ahk_id %h% WinGetClass,CN,ahk_id %h% IF (PN!="Explorer.EXE" and CN!="Windows.UI.Core.CoreWindow") { ;最大化状態ではウィンドウサイズを変更させない v0.3 WinGet, s, Style, ahk_id %h% If !(s & 0x1000000) { Menu, 1, add, 1280x720 Menu, 1, add, 1280x960 Menu, 1, add, 1440x810 Menu, 1, add, 1440x1000 Menu, 1, add } Menu, 1, add, 0`% Menu, 1, add, 10`% Menu, 1, add, 20`% Menu, 1, add, 30`% Menu, 1, add, 40`% Menu, 1, add, 50`% Menu, 1, add } ;メニューが消えない場合があるので何もしないキャンセルを追加しておく Menu, 1, add, キャンセル ;既に最前面ならチェックをつける v0.2 WinGet, s, ExStyle, ahk_id %h% If (s & 0x8) { Menu, 1, Check, 最前面(&T) } Menu, 1, Show ExitApp フォルダを開く(&O): WinGet,p,ProcessPath,ahk_id %h% Run,explorer.exe /select`,%p% Return 最前面(&T): WinSet, AlwaysOnTop, Toggle, ahk_id %h% Return 1280x720: WinResize(1280,720) Return 1280x960: WinResize(1280,960) Return 1440x810: WinResize(1440,810) Return 1440x1000: WinResize(1440,1000) Return 0%: WinTransparent("OFF") Return 10%: WinTransparent(230) Return 20%: WinTransparent(204) Return 30%: WinTransparent(179) Return 40%: WinTransparent(153) Return 50%: WinTransparent(128) Return キャンセル: Return WinResize(x,y) { global h ;なぜかウィンドウサイズが合わないので足して修正している。環境によって違うかも WinMove,ahk_id %h%,,,,x+6,y+3 Return } WinTransparent(x="OFF") { global h WinSet,Transparent,%x%,ahk_id %h% Return }
2021/05/09 v0.3 最大化状態ではウィンドウサイズ変更の項目を出ないようにした