使用 Python Win32 扩展,如何使 Windows XP 上的任意窗口透明?
问问题
3775 次
3 回答
15
SetLayeredWindowsAttributes示例:
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)
于 2010-12-28T23:06:55.140 回答
3
您可以使用SetLayeredWindowAttributes WIN32 API 函数来创建透明窗口:
BOOL WINAPI SetLayeredWindowAttributes(
__in HWND hwnd,
__in COLORREF crKey,
__in BYTE bAlpha,
__in DWORD dwFlags
);
这是一个代码示例,可用于包装 WIN32 API 函数以设置透明度。
于 2010-12-28T20:38:25.250 回答
0
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)
这不适用于 Windows 10。
于 2020-10-26T09:07:37.610 回答