Last active
March 5, 2018 12:08
-
-
Save iann0036/816bcf788833bce86c998a2a196b0a26 to your computer and use it in GitHub Desktop.
Darken screen around area
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import wx | |
import time | |
from multiprocessing import Process, Lock | |
def darkenScreenAroundArea(lock, x, y, width, height): | |
app = wx.App(False) | |
screensize = wx.GetDisplaySize() | |
frm = DarkFrame(lock, 0, 0, screensize[0], y) # top | |
frm = DarkFrame(lock, 0, y, x, height) # left | |
frm = DarkFrame(lock, (x + width), y, (screensize[0] - x + width), height) # right | |
frm = DarkFrame(lock, 0, (y + height), screensize[0], (screensize[1] - y + height)) # bottom | |
app.MainLoop() | |
class DarkFrame(wx.Frame): | |
def __init__(self, lock, x, y, width, height): | |
wx.Frame.__init__(self, None, title='', style=wx.NO_BORDER, size=(width,height), pos=(x,y)) | |
self.SetBackgroundColour('BLACK') | |
self.SetTransparent(140) | |
self.Show() | |
self.lock = lock | |
self.timer = wx.Timer(self) | |
self.Bind(wx.EVT_TIMER, self.update, self.timer) | |
self.timer.Start(50, wx.TIMER_CONTINUOUS) | |
def update(self, event): | |
if self.lock.acquire(block=False): | |
self.lock.release() | |
self.Close() | |
lock = Lock() | |
lock.acquire() | |
p = Process(target=darkenScreenAroundArea, args=(lock, 400, 200, 500, 300)) | |
p.start() | |
time.sleep(5) | |
lock.release() | |
p.join() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment