gpt4 book ai didi

python - 获取 win32ui.error : CreateFile when trying to save a screenshot with python and winapi

转载 作者:太空宇宙 更新时间:2023-11-04 03:37:08 25 4
gpt4 key购买 nike

以下是我的代码:

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 上运行良好,但现在在我的笔记本电脑上运行时出于某种原因会引发以下错误:

win32ui.error: CreateFile

无法在线找到有关该异常的任何信息...作为记录(如果它有所不同)我使用以下来自 pypi 的软件包在这台笔记本电脑上安装了 winapi:

pip install pypiwin32

因为安装常规的 pywin32 不起作用。另外,现在我想起来了,这台机器是 Windows 8.1,而不是运行良好的机器上的 Windows 7。

有什么想法吗?

最佳答案

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

myBitMap.SaveBitmapFile(newDC, "c:\\temp\\bla.bmp")

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

关于python - 获取 win32ui.error : CreateFile when trying to save a screenshot with python and winapi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28526827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com