Guest User

Transparent Window Script

a guest
Jan 23rd, 2014
435
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;Found on: http://lifehacker.com/show-us-your-best-autohotkey-script-507227185
  2. ;Use CTRL+ALT+D. This will bring up a slider which allows you to change the transparency of the entire window you are currently focused on. The slider will disappear if the cursor is not nearby after 3 seconds
  3. ;Init
  4. {
  5. #Persistent
  6. #SingleInstance force
  7. CoordMode, Mouse, Screen
  8. SetTitleMatchMode, 2
  9.  
  10. SetupTrayMenu()
  11.  
  12. GUI_HIDE_TIME = 3000
  13. FADE_STEP_AMT = 10
  14. Return
  15. }
  16.  
  17. SetupTrayMenu()
  18. {
  19. Menu, Tray, NoStandard
  20.  
  21. Menu, Tray, Add, Remove transparency from all windows, ShowAll
  22. Menu, Tray, Add
  23.  
  24. Menu, Tray, Standard
  25.  
  26. Return
  27. }
  28.  
  29. ShowAll:
  30. {
  31. WinGet, id, list
  32.  
  33. Loop, %id%
  34. {
  35. WinSet, Transparent, Off, % "ahk_id" id%A_Index%
  36. }
  37.  
  38. Return
  39. }
  40.  
  41. ^!D::
  42. {
  43. GetTransInfo(true)
  44. Return
  45. }
  46.  
  47. GetTransInfo(bUseWinUnderMouse)
  48. {
  49. global g_iPosX
  50. global g_iPosY
  51. global g_iActiveWinID
  52. global g_bWinOnTop
  53.  
  54. IfWinExist, TransGui
  55. {
  56. Gui, Destroy
  57. }
  58. Else
  59. {
  60. If( bUseWinUnderMouse )
  61. {
  62. MouseGetPos, g_iPosX, g_iPosY, g_iActiveWinID
  63. }
  64.  
  65. WinGet, hWinExStyle, ExStyle, ahk_id %g_iActiveWinID%
  66.  
  67. ; 0x8 is WS_EX_TOPMOST.
  68. g_bWinOnTop := (hWinExStyle & 0x8) > 0
  69.  
  70. CreateGui()
  71. }
  72. Return
  73. }
  74.  
  75. CreateGui()
  76. {
  77. global g_iTransAmt
  78. global g_iTransText
  79. global g_iActiveWinID
  80. global g_bWinOnTop
  81. global g_iPosX
  82. global g_iPosY
  83. global GUI_HIDE_TIME
  84.  
  85. Gui, Destroy
  86.  
  87. WinGet, g_iTransAmt, Transparent, ahk_id %g_iActiveWinID%
  88.  
  89. If(g_iTransAmt == "")
  90. {
  91. g_iTransAmt = 255
  92. }
  93.  
  94. g_iTransAmt := Round( g_iTransAmt / 2.55 )
  95.  
  96. Gui, +ToolWindow -Caption +Border +AlwaysOnTop
  97.  
  98. Gui, Add, Text, w25 vg_iTransText, %g_iTransAmt%`%
  99.  
  100. Gui, Add, Slider, Vertical Invert NoTicks AltSubmit Center Line5 Page100 Buddy1g_iTransText Buddy2g_bWinOnTop gChangeWinTrans vg_iTransAmt, %g_iTransAmt%
  101.  
  102. Gui, Add, Checkbox, vg_bWinOnTop gChangeWinTop Checked%g_bWinOnTop%, Top
  103.  
  104. Gui, Margin, 0
  105.  
  106. GetGuiPos()
  107.  
  108. Gui, Show, x%g_iPosX% y%g_iPosY%, TransGui
  109.  
  110. SetTimer, CheckToHide, %GUI_HIDE_TIME%
  111.  
  112. Return
  113. }
  114.  
  115. GetGuiPos()
  116. {
  117. global g_iPosY
  118. global g_iPosX
  119. global g_iTransAmt
  120.  
  121. SysGet, iVirtualScreenHeight, 79
  122. SysGet, iVirtualScreenWidth, 78
  123.  
  124. If( g_iPosX < 22 )
  125. {
  126. g_iPosX = 0
  127. }
  128. Else If( g_iPosX > iVirtualScreenWidth - 29 )
  129. {
  130. g_iPosX := iVirtualScreenWidth - 51
  131. }
  132. Else
  133. {
  134. g_iPosX -= 22
  135. }
  136.  
  137. If( g_iPosY < 40 )
  138. {
  139. g_iPosY = 0
  140. }
  141. Else If( g_iPosY > iVirtualScreenHeight - 77 )
  142. {
  143. g_iPosY := iVirtualScreenHeight - 115
  144. }
  145. Else
  146. {
  147. g_iPosY -= (78 - (Round(g_iTransAmt/2.63)))
  148.  
  149. }
  150.  
  151. Return
  152. }
  153.  
  154. CheckToHide:
  155. {
  156. MouseGetPos,,,iCurWinId
  157. WinGet, iTransGuiID,,TransGui
  158.  
  159. If( iCurWinId == iTransGuiID )
  160. {
  161. SetTimer, CheckToHide, %GUI_HIDE_TIME%
  162. }
  163. Else
  164. {
  165. HideGui()
  166. }
  167. Return
  168. }
  169.  
  170. HideGui()
  171. {
  172. global g_iHideFadeAmt
  173.  
  174. g_iHideFadeAmt = 255
  175. SetTimer, MiniLoop, 1
  176.  
  177. SetTimer, CheckToHide, Off
  178. Return
  179. }
  180.  
  181. MiniLoop:
  182. {
  183. If( g_iHideFadeAmt <= 0)
  184. {
  185. Gui, Destroy
  186. SetTimer, MiniLoop, Off
  187. }
  188. Else
  189. {
  190. WinSet, Transparent, %g_iHideFadeAmt%, TransGui
  191. g_iHideFadeAmt -= %FADE_STEP_AMT%
  192. }
  193.  
  194. Return
  195. }
  196.  
  197. ChangeWinTop:
  198. {
  199. SetTimer, CheckToHide, %GUI_HIDE_TIME%
  200. SetTimer, MiniLoop, Off
  201. WinSet, Transparent, 255, TransGui
  202.  
  203. GuiControlGet, g_bWinOnTop
  204. If( g_bWinOnTop )
  205. {
  206. WinSet, AlwaysOnTop, On, ahk_id %g_iActiveWinID%
  207. WinSet, AlwaysOnTop, On, TransGui
  208. }
  209. Else
  210. {
  211. WinSet, AlwaysOnTop, Off, ahk_id %g_iActiveWinID%
  212. }
  213.  
  214. Return
  215. }
  216.  
  217. ChangeWinTrans:
  218. {
  219. Sleep 100
  220.  
  221. GuiControlGet, g_iTransAmt
  222.  
  223. SetTimer, CheckToHide, %GUI_HIDE_TIME%
  224. SetTimer, MiniLoop, Off
  225.  
  226. WinSet, Transparent, 255, TransGui
  227.  
  228. If(g_iTransAmt == 100)
  229. {
  230. WinSet, Transparent, Off, ahk_id %g_iActiveWinID%
  231. }
  232. Else
  233. {
  234. iRealTransAmt := Round( g_iTransAmt * 2.55 )
  235. WinSet, Transparent, %iRealTransAmt%, ahk_id %g_iActiveWinID%
  236. }
  237.  
  238. GuiControl,, g_iTransText, %g_iTransAmt%`%
  239. iRealTransAmt =
  240. Return
  241. }
Advertisement
Add Comment
Please, Sign In to add comment