obsessedDesigns

Window Ghoster (need settings.ini)

Oct 14th, 2020
1,474
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;#####################################################################################
  2. ; Created by        Cristófano Varacolaci
  3. ; For               ObsessedDesigns Studios™, Inc.
  4. ; Version           0.1.0.0
  5. ; Build                11:13-2020.10.10
  6. ;#####################################################################################
  7.  
  8. #SingleInstance Force
  9. #MaxThreadsPerHotkey 10
  10.  
  11. SetBatchLines, -1
  12. AutoTrim, Off
  13.  
  14. global PROGNAME := "Window Ghoster"
  15. global VERSION := "1.0.0.1"
  16. global RELEASE := "October 13 2020"
  17. global CONFIGURATION_FILE := "settings.ini"
  18. global mainIconPath := H_Compiled || A_IsCompiled ? A_AhkPath : "icon.ico"
  19.  
  20. Change_Icon(mainIconPath)
  21.  
  22. ini_STEP := ini_read(CONFIGURATION_FILE, "Options", "step")
  23. ini_LIMIT := ini_read(CONFIGURATION_FILE, "Options", "limit")
  24.  
  25. ;**************************
  26. ;PROGRAM VARIABLES GLOBALS
  27. ;**************************
  28. AlphaIncrement = 8.5
  29. AlphaStep := (ini_STEP > 0) ? (ini_STEP) : (5)
  30. AlphaLimit := (ini_LIMIT > 10) ? (ini_LIMIT) : (10)
  31. ;**************************
  32.  
  33. ; creates the tray menu
  34. Gosub,MENU
  35.  
  36. Ctrl & MButton::
  37.    GetKeyState, ShiftState, Shift
  38.    If ShiftState = U  
  39.    {
  40.       Return
  41.    }
  42.    Gosub, WinGetTransparency
  43.    Gosub, WinSetTransparency
  44.    Gosub, ShowTransparencyToolTip
  45. Return
  46.  
  47. Ctrl & WheelDown::
  48.    GetKeyState, ShiftState, Shift
  49.    If ShiftState = U
  50.    {
  51.       Return
  52.    }
  53.    Gosub, WinGetTransparency
  54.    Trans0 -= AlphaStep
  55.    Gosub, WinSetTransparency
  56.    Gosub, ShowTransparencyToolTip
  57. Return
  58.  
  59. Ctrl & WheelUp::
  60.    GetKeyState, ShiftState, Shift
  61.    If ShiftState = U
  62.    {
  63.       Return
  64.    }
  65.    Gosub, WinGetTransparency
  66.    Trans0 += AlphaStep
  67.    Gosub, WinSetTransparency
  68.    Gosub, ShowTransparencyToolTip
  69. Return
  70.  
  71. Ctrl & LButton::
  72.    Goto, SHUTDOWN
  73. Return
  74.  
  75.  
  76. WinGetTransparency:
  77.   MouseGetPos, , , WindowID
  78.    If Trans_%WindowID% =
  79.    {
  80.       Trans_%WindowID% = 100
  81.    }
  82.    StringTrimRight, Trans, Trans_%WindowID%, 0
  83.    Trans0 = %Trans%
  84. Return
  85.  
  86. WinSetTransparency:
  87.   WinGetClass, WindowClass, ahk_id %WindowID%
  88.    If WindowClass = Progman
  89.    {
  90.       Trans0 = 100
  91.    }
  92.    Else If Trans0 < %AlphaLimit%
  93.    {
  94.       Trans0 = %AlphaLimit%
  95.    }
  96.    Else If Trans0 > 100
  97.    {
  98.       Trans0 = 100
  99.    }
  100.    a = %Trans%
  101.    b = %Trans0%
  102.    Trans = %Trans0%
  103.    Trans_%WindowID% = %Trans%
  104.    If WindowClass = Progman
  105.    {
  106.       Return
  107.    }
  108.    a *= 2.55
  109.    Alpha0 = %a%             ; Starting Alpha
  110.    b *= 2.55
  111.    Alpha = %b%
  112.    Transform, Alpha, Round, %Alpha% ; Ending Alpha
  113.    c = %Alpha0%             ; Init iteration var.
  114.    d = %Alpha%
  115.    d -= %Alpha0%            ; Range to iterate
  116.    Transform, e, Abs, %d%
  117.    If e > 0
  118.    {
  119.       f = %d%
  120.       f /= %e%              ; Unity increment (+/- 1)
  121.    }
  122.    Else
  123.    {
  124.       f = 0
  125.    }
  126.    g = %f%
  127.    g *= %AlphaIncrement%        ; Increment
  128.    Loop
  129.    {
  130.       Transform, c, Round, %c%
  131.       WinSet, Trans, %c%, ahk_id %WindowID%
  132.       If c = %Alpha%
  133.       {
  134.          Break
  135.       }
  136.       Else If e >= %AlphaIncrement%
  137.       {
  138.          c += %g%
  139.          e -= %AlphaIncrement%
  140.       }
  141.       Else
  142.       {
  143.          c = %Alpha%
  144.       }
  145.    }
  146. Return
  147.  
  148. ShowTransparencyToolTip:
  149.   h = %Trans%
  150.    h /= 5
  151.    i = 1
  152.    i -= %h%
  153.    ToolTipText = Opacity :%A_Space%
  154.    Loop, %h%
  155.    {
  156.       ToolTipText = %ToolTipText%|
  157.    }
  158.    If h > 0
  159.    {
  160.       ToolTipText = %ToolTipText%%A_Space%
  161.    }
  162.    ToolTipText = %ToolTipText%%Trans%`%
  163.    If i > 0
  164.    {
  165.       ToolTipText = %ToolTipText%%A_Space%
  166.    }
  167.    Loop, %i%
  168.    {
  169.       ToolTipText = %ToolTipText%|
  170.    }
  171.    ToolTip, %TooltipText%
  172.    MouseGetPos, MouseX0, MouseY0
  173.    SetTimer, RemoveToolTip
  174. Return
  175.  
  176. RemoveToolTip:
  177.   If A_TimeIdle < 1000
  178.    {
  179.       MouseGetPos, MouseX, MouseY
  180.       If MouseX = %MouseX0%
  181.       {
  182.          If MouseY = %MouseY0%
  183.          {
  184.             Return
  185.          }
  186.       }
  187.    }
  188.    SetTimer, RemoveToolTip, Off
  189.    ToolTip
  190. Return
  191.  
  192.  
  193.  
  194. MENU:
  195.     Menu,Tray,DeleteAll
  196.     Menu,Tray,NoStandard
  197.     Menu,Tray,Add,%PROGNAME%,ABOUT
  198.     Menu,Tray,Default,%PROGNAME%
  199.     Menu,Tray,Add,
  200.     Menu,Tray,Add,&About...,ABOUT
  201.     Menu,Tray,Add,&Exit, SHUTDOWN
  202.     Menu,Tray,Tip,%PROGNAME% %VERSION%
  203. Return
  204.  
  205. ; [MENU ABOUT]
  206. ABOUT:
  207.     Gui 2:Font, s13 w600 c0x333333, Segoe UI
  208.     Gui 2:Add, Text, x34 y3 w167 h23 +0x200, Window Ghoster
  209.     Gui 2:Font
  210.     Gui 2:Font, s8 c0x333333, Segoe UI
  211.     Gui 2:Add, Text, x22 y22 w165 h23 +0x200, (obsessedDesigns Studios™, Inc.)
  212.     Gui 2:Font
  213.     Gui 2:Font, s9 c0x333333
  214.     Gui 2:Add, Text, x20 y50 w120 h23 +0x200, % "File Version:`t" VERSION
  215.     Gui 2:Add, Text, x20 y70 w160 h23 +0x200, % "Release Date:`t" RELEASE
  216.     Gui 2:Font
  217.     Gui 2:Font, s9 c0x808080, Segoe UI
  218.     Gui 2:Add, Link, x46 y100 w171 h23, <a href="mailto:cristo@obsesseddesigns.com">Cristófano Varacolaci</a>
  219.     Gui 2:Font
  220.     Gui 2:Add, Button, x83 y123 w44 h23 gGuiClose2, &OK
  221.  
  222.     Gui 2:Show, w210 h150, % "About"
  223. Return
  224.  
  225. GUICLOSE2:
  226.     Gui 2:Hide
  227. Return
  228.  
  229. GuiEscape:
  230. GuiClose:
  231. SHUTDOWN:
  232.     ExitApp
  233.  
  234. ; ==================================================================================================================================
  235. ; Function:       Change_Icon
  236. ; Description     Set the icon to the tray depending if it's compiled or not
  237. ; Usage:          changeIcon(file)
  238. ; Parameters:
  239. ;  file           -  path to the icon file ["icons/icon.ico"]
  240. ; Return values:  
  241. ;     nothing
  242. ; Change history:
  243. ;     1.0.00.00/2016-08-13
  244. ; Remarks:
  245. ;     Nothing
  246. Change_Icon(file){
  247.     if A_IsCompiled or H_Compiled       ; H_Compiled is a user var created if compiled with ahk_h
  248.         Menu, tray, icon, % A_AhkPath
  249.     else
  250.         Menu, tray, icon, % file
  251. }
  252. ; ==================================================================================================================================
  253. ; Function:       Ini_read
  254. ; Description     Reads a value from an ini file
  255. ; Usage:          Ini_read(inifile, section, key)
  256. ; Parameters:
  257. ;  inifile        -  path to the ini file ["config/main.ini"]
  258. ;  section        -  section of the ini to read the key from
  259. ;  key            -  the key to delete from the ini file
  260. ; Return values:  
  261. ;     value of the searched key
  262. ; Change history:
  263. ;     1.0.00.00/2016-08-13
  264. ; Remarks:
  265. Ini_read(inifile, section, key){
  266.     Iniread, v, % inifile,% section,% key, %A_space%
  267.     if v = %A_temp%
  268.         v := ""
  269.     return v
  270. }
RAW Paste Data