首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用python和winapi保存屏幕截图时获得win32ui.error: CreateFile

使用python和winapi保存屏幕截图时获得win32ui.error: CreateFile
EN

Stack Overflow用户
提问于 2015-02-15 13:59:47
回答 1查看 1.7K关注 0票数 2

以下是我的代码:

代码语言:javascript
复制
import sys
import win32gui
import win32ui
import win32con
from time import sleep
from datetime import datetime

def get_windows_bytitle(title_text):
    def _window_callback(hwnd, all_windows):
        all_windows.append((hwnd, win32gui.GetWindowText(hwnd)))
    windows = []
    win32gui.EnumWindows(_window_callback, windows)
    return [hwnd for hwnd, title in windows if title_text in title]

def screenshot(hwnd, filename):
    l,t,r,b = win32gui.GetClientRect(hwnd)
    h = b - t
    w = r - l
    hDC = win32gui.GetDC(hwnd)
    myDC = win32ui.CreateDCFromHandle(hDC)
    newDC = myDC.CreateCompatibleDC()

    myBitMap = win32ui.CreateBitmap()
    myBitMap.CreateCompatibleBitmap(myDC, w, h)

    newDC.SelectObject(myBitMap)

    win32gui.SetForegroundWindow(hwnd)
    sleep(.2) #lame way to allow screen to draw before taking shot
    newDC.BitBlt((0,0),(w, h) , myDC, (0,0), win32con.SRCCOPY)
    myBitMap.Paint(newDC)
    myBitMap.SaveBitmapFile(newDC, "c:\\bla.bmp")

def main():
    try:
        hwnd = get_windows_bytitle("Chrome")[0]
    except IndexError:
        print("Chrome window not found")
        sys.exit(1)

    screenshot(hwnd, str(datetime.now().microsecond) + ".bmp")


if __name__ == "__main__":
    main()

它在一台PC上工作得很好,但是现在在我的笔记本上运行会引发以下错误:

代码语言:javascript
复制
win32ui.error: CreateFile

在网上找不到关于那个例外的任何信息..。对于记录(如果有区别的话),我使用pypi中的以下包在这台笔记本上安装了winapi:

代码语言:javascript
复制
pip install pypiwin32

因为安装常规pywin32不起作用。而且,现在我想到它了,这台机器是Windows8.1,而不是运行良好的机器上的Windows 7。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-15 14:45:55

C:\必须有一些权限问题,因此它必须失败。创建临时文件夹(或任何您喜欢的名称)并修改代码,如下所示

代码语言:javascript
复制
myBitMap.SaveBitmapFile(newDC, "c:\\temp\\bla.bmp")

注意:确保存在临时文件夹。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28526827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档