Give this a try.
Code: Select all
#SingleInstance, Force
SetBatchLines, -1
CoordMode, Mouse, Screen
Positions := [], W := 190, H := 100
Positions[1] := { X: 50, Y: 50 }
Positions[2] := { X: 50, Y: Floor((A_ScreenHeight-H)/2) }
Positions[3] := { X: 50, Y: (A_ScreenHeight-H-50) }
Positions[4] := { X: Floor((A_ScreenWidth-W)/2), Y: (A_ScreenHeight-H-50) }
Positions[5] := { X: (A_ScreenWidth-(W+50)), Y: (A_ScreenHeight-H-50) }
Positions[6] := { X: (A_ScreenWidth-(W+50)), Y: Floor((A_ScreenHeight-H)/2) }
Positions[7] := { X: (A_ScreenWidth-(W+50)), Y: 50 }
Positions[8] := { X: Floor((A_ScreenWidth-W)/2), Y: 50 }
return
GuiClose:
*ESC::
ExitApp
FadeIn:
if((FadeValue+=5)<260){
WinSet, Transparent, % FadeValue, % "ahk_Id " GuiHwnd
}else{
SetTimer, FadeIn, Off
SetTimer, FadeWait, -1000
FadeValue := 255
}
return
FadeWait:
SetTimer, FadeOut, 30
return
FadeOut:
if((FadeValue-=5)>=0){
WinSet, Transparent, % FadeValue, % "ahk_Id " GuiHwnd
}else{
SetTimer, FadeOut, Off
SetTimer, MoveWindow, -200
FadeValue := 0
}
return
MoveWindow:
if(++Index>Positions.Length()){
MouseGetPos, Nx, Ny
Index := 1
if(Nx!=Sx||Ny!=Sy){
Gui, 1:Show, % "xCenter yCenter w" W " h" H " NA", Demo
WinSet, Transparent, 255, % "ahk_Id " GuiHwnd
return
}
}
Gui, 1:Show, % "x" Positions[Index].X " y" Positions[Index].Y " w" W " h" H " NA", Demo
SetTimer, FadeIn, 30
return
F1::
FadeValue := 0, Index := 1
Gui, 1:New, +AlwaysOnTop hwndGuiHwnd
Gui, 1:Color, 222222
WinSet, Transparent, % FadeValue, % "ahk_Id " GuiHwnd
Gui, 1:Show, % "x" Positions[Index].X " y" Positions[Index].Y " w" W " h" H " NA", Demo
MouseGetPos, Sx, Sy
SetTimer, FadeIn, 30
return