ウィンドウのアクティブ化ライブラリ
from AHKスクリプト
v2
code:win_activate.ahk
#WinActivateForce
;--------------------------------------------------------------------
; マウスオーバーしているウィンドウを
; 組み込みのWinActivate関数によってアクティブ化する。
MouseOverWinActivate() {
MouseGetPos , , &id
WinActivate "ahk_id " id
}
;--------------------------------------------------------------------
; マウスオーバーしているウィンドウがバックグラウンドの場合はアクティブ化する。
; 既にウィンドウがアクティブの場合は、引数に指定したイベントを発火する。
; 引数には基本的にホットキーと同じイベントを指定すべきである。
BackgroundWinActivateOrPassThrough(event) {
MouseGetPos , , &id
if not WinActive("ahk_id " id) {
WinActivate "ahk_id " id
return
}
Send event
return
}
;--------------------------------------------------------------------
; アクティブなウィンドウのクライアント領域の中心にマウスカーソルを設置する
; 引数:
; MouseMoveFunc:
; マウスカーソルの位置を設定する関数オブジェクトを指定する。
; 指定する関数の引数は、X座標、Y座標の2つのみ取れるものとする。
; MouseMoveを使う場合は、XとYの絶対座標のみが指定できる。
SetMouseToActiveWindow(MouseMoveFunc)
{
; アクティブなウィンドウのクライアント領域の中心座標を計算する
try {
WinGetClientPos(&x, &y, &w, &h, "A")
} catch TargetError as e {
; do nothing and return
return
}
targetX := x + w / 2
targetY := y + h / 2
; マウスカーソルを移動する
CallbackMouseMove := CallbackCreate(MouseMoveFunc, , 2)
DllCall(CallbackMouseMove, "int", targetX, "int", targetY)
}
v1
作っていない
v2でコンパイルすること