
https://nlab.itmedia.co.jp/nl/articles/2406/10/news108.html
🍙👍

よきよきー👍

🙄 名誉学士パターン__φ(. . )メモメモ

少し修正したので貼っておこー 
https://ahkscript.github.io/ja/docs/v2/misc/Remap.htm
#SingleInstance Force
; ----------------------------------------
; helper function
; ----------------------------------------
; OS情報取得
GetWinOSVersion()
{
	osVersion := StrSplit(A_OSVersion, ".")
	major := osVersion[1]
	minor := osVersion[2]
	build := osVersion[3]
	If (major == "10")
		If (minor == "0")
			If (build >= "20000")
				Return 11
	Return 10
}
; ディスプレイ情報取得
getDisplayInfo(&x, &y, &width, &height)
{
	MonitorGetWorkArea(1, &Left, &Top, &Right, &Bottom)
	x := Left
	y := Top
	width := Right - Left
	height := Bottom - Top
}
; 画面位置取得
getWindowPosition(windowPosition, &x, &y, &width, &height)
{
	; ディスプレイ情報取得
	getDisplayInfo(&x, &y, &width, &height)
	; 画面サイズ補正
	; 画面の左,右,下に隙間が空くので補正する。
	; ウインドスタイル「WS_SYSMENU」が設定されていない画面は補正なし。(例:VSCode)
	edge := 0
	if (GetWinOSVersion() == 11) {
		style := WinGetStyle("A")
		if (style & 0x00080000) { ; WS_SYSMENU
			edge := 7 ; px
		}
	}
	; 画面位置計算
	if (windowPosition == 1) {
		x := x - edge
		y := y
		width := width / 2 + edge * 2
		height := height + edge
	}
	if (windowPosition == 2) {
		x := width * 0.1
		y := y
		width := width * 0.8 + edge * 2
		height := height + edge
	}
	if (windowPosition == 3) {
		x := width / 2 - edge
		y := y
		width := width / 2 + edge * 2
		height := height + edge
	}
	if (windowPosition == "q") {
		x := x - edge
		y := y
		width := width / 2 + edge * 2
		height := height / 2 + edge
	}
	if (windowPosition == "a") {
		x := x - edge
		y := height / 2 + y
		width := width / 2 + edge * 2
		height := height / 2 + edge
	}
	if (windowPosition == "w") {
		x := width / 2 - edge
		y := y
		width := width / 2 + edge * 2
		height := height / 2 + edge
	}
	if (windowPosition == "s") {
		x := width / 2 - edge
		y := height / 2 + y
		width := width / 2 + edge * 2
		height := height / 2 + edge
	}
	OutputDebug("x=" x " y=" y " width=" width " height=" height)
}
; 画面位置設定
setWindowPosition(windowPosition) {
	getWindowPosition(windowPosition, &x, &y, &width, &height)
	try {
		hwnd := WinGetID("A")
		WinMove(x, y, width, height, hwnd)
	}
}
; ----------------------------------------
; main
; ----------------------------------------
; 矢印キー × 5
^Up::Send "{UP 5}"
^Down::Send "{Down 5}"
^Left::Send "{Left 5}"
^Right::Send "{Right 5}"
; 上下左右
^*i::Send "{UP}"
^*k::Send "{Down}"
^*j::Send "{Left}"
^*l::Send "{Right}"
^*u::Send "{Home}"
^*o::Send "{End}"
; 削除
^*h::Send "{BS}"
; 画面移動(左/中央/右)
!1::setWindowPosition("1")
!2::setWindowPosition("2")
!3::setWindowPosition("3")
; 画面移動(左上/左下/右上/右下)
!q::setWindowPosition("q")
!a::setWindowPosition("a")
!w::setWindowPosition("w")
!s::setWindowPosition("s")
; 音量調整
^F10::Send "{VOLUME_MUTE}"
^F11::Send "{VOLUME_DOWN}"
^F12::Send "{VOLUME_UP}"
Ctrl + 矢印キー:矢印キー5回連打
Ctrl + iキー :上キー*
Ctrl + kキー :下キー*
Ctrl + jキー :左キー*
Ctrl + lキー :右キー*
Ctrl + uキー :Homeキー*
Ctrl + oキー :Endキー*
Ctrl + hキー :BackSpace
Alt + 1キー :アクティブ画面左寄せ
Alt + 2キー :アクティブ画面中央寄せ
Alt + 3キー :アクティブ画面右寄せ
Alt + qキー :アクティブ画面左上寄せ*
Alt + aキー :アクティブ画面左下寄せ*
Alt + wキー :アクティブ画面右上寄せ*
Alt + sキー :アクティブ画面右下寄せ*
Ctrl + F10 :音量ミュート
Ctrl + F11 :音量Down
Ctrl + F12 :音量UP
*:機能追加
モニター1台の環境を前提としているため、別途修正するかもしれない。
ファイルとして公開してなかったので今更ながら置いておく。