python截取指定程序的屏幕
时间: 2024-05-11 17:13:55 浏览: 7
使用Python中的PIL库可以实现截取指定程序的屏幕。具体步骤如下:
1. 安装PIL库
```python
pip install Pillow
```
2. 导入所需模块
```python
import win32gui
import win32ui
import win32con
import win32api
from PIL import Image
```
3. 定义截图函数
```python
def capture_window(hwnd):
# 获取窗口大小
left, top, right, bottom = win32gui.GetWindowRect(hwnd)
width = right - left
height = bottom - top
# 获取窗口DC
hwnd_dc = win32gui.GetWindowDC(hwnd)
mfc_dc = win32ui.CreateDCFromHandle(hwnd_dc)
save_dc = mfc_dc.CreateCompatibleDC()
# 创建位图对象
save_bitmap = win32ui.CreateBitmap()
save_bitmap.CreateCompatibleBitmap(mfc_dc, width, height)
save_dc.SelectObject(save_bitmap)
# 截图
save_dc.BitBlt((0, 0), (width, height), mfc_dc, (0, 0), win32con.SRCCOPY)
# 保存位图到文件
bmp_info = save_bitmap.GetInfo()
bmp_str = save_bitmap.GetBitmapBits(True)
image = Image.frombuffer('RGB', (bmp_info['bmWidth'], bmp_info['bmHeight']), bmp_str, 'raw', 'BGRX', 0, 1)
image.save('screenshot.png')
```
4. 调用截图函数
```python
hwnd = win32gui.FindWindow(None, '程序名') # 程序名可替换为想要截取的程序名
capture_window(hwnd)
```
以上代码可以实现截取指定程序的屏幕并保存为"screenshot.png"文件。