mino90’s メモ帳的な何か

メモ代わりにいろいろ書いてます。スマホ等で見づらければPC版サイトに切り替えてみてください。

アクティブウィンドウの大きさを変えたり透明度を変えたり常に手前にしたり実行ファイルのフォルダを開くメニューを表示するAutoHotKeyスクリプト

今までこのブログに書いていたやつが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 最大化状態ではウィンドウサイズ変更の項目を出ないようにした