告知欄です
1- レス

スクリプト投稿スレ


[15]unnamed.ahk:04/11/28 00:00 ID:???
#Persistent
;;;--- AutoExecute ---
init:
SetTimer,tm_WinCheck,1000
return
; --- スクリーン外に出てマウス操作できないウインドウを押し戻す ---
tm_WinCheck:
WinGet,ast,MinMax,A
if ast<>0, return
;タスクバーの部分を除いた境界座標を取得
SysGet, mcnt,MonitorCount
Loop, %mcnt%
{
SysGet, ww,MonitorWorkArea,%a_index%
if a_index=1
{
sL = %wwLeft%
sT = %wwTop%
sR = %wwRight%
sB = %wwBottom%
}
else ; マルチモニタ環境用(動作未確認)
{
if sL > %wwLeft%, SetEnv,sL,%wwLeft%
if sT > %wwTop%, SetEnv,sT,%wwTop%
if sR < %wwRight%, SetEnv,sR,%wwRight%
if sB < %wwBottom%, SetEnv,sB,%wwBottom%
}
}
;ウインドウドラッグ可能な境界範囲を計算
;タイトルバー左 [_]□[X] + α
;;;SysGet, ww,29 ; タイトルバー内ボタン幅
SysGet, ww,52;小タイトルバー内ボタン幅
ww *= 3 ; [_]□[X]
ww += 30 ; +α
sL += %ww%;
;タイトルバー右 小アイコン + α
SysGet, ww,49 ; 小アイコン幅
ww += 30 ; + α
sR -= %ww%;
;下
SysGet, ww,35 ; ウィンドウの最小トラッキングサイズ高さ
sB -= %ww%
; スクリーン領域外のウインドウを押し戻す
WinGetPos ,ax,ay,aw,,A
ifay<%sT%, WinMove,A,,,%sT% ; 上杉
ifay>%sB%, WinMove,A,,,%sB% ; 下杉
ifax>%sR%, WinMove,A,,%sR% ; 右杉
ax += %aw%
ifax<%sL%
{
ax = %sL%
ax -= %aw%
WinMove,A,,%ax% ; 左杉
}
return


名前

E-mail



0ch BBS 2005-10-08