obsessedDesigns

Window Ghoster (need settings.ini)

Oct 14th, 2020
1,922
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

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×