Search code examples
pythonwindowswinapipywin32pywin

Make a window transparent using Win32?


Using Python Win32 extensions, how do you make an arbitrary window on Windows XP transparent?


Solution

  • SetLayeredWindowsAttributes example:

    import win32gui
    import win32con
    import winxpgui
    import win32api
    import subprocess
    import time
    
    subprocess.Popen("notepad.exe", shell=True)
    time.sleep(1)
    hwnd = win32gui.FindWindow(None, "New file - metapad")  ## The caption of my empty notepad (MetaPad)
    
    win32gui.SetWindowLong (hwnd, win32con.GWL_EXSTYLE, win32gui.GetWindowLong (hwnd, win32con.GWL_EXSTYLE ) | win32con.WS_EX_LAYERED )
    winxpgui.SetLayeredWindowAttributes(hwnd, win32api.RGB(0,0,0), 180, win32con.LWA_ALPHA)