pywin32 库win32gui、win32ui、win32con显示“unresolved-import”

问题描述

我已经下载了 Python 3.7 和 3.9(均为 64 位)以及 VS Code 来复制以下代码https://www.youtube.com/watch?v=WymCpVUPWQ4&t=1291s

但是,当安装“pywin32”然后将包导入代码时,我在三个导入时得到“unresolved-import”:win32gui、win32ui 和 win32con

我尝试了多种安装方法,奇怪的是从上面链接复制的代码有效。

  1. 尝试通过“pip”安装 https://pypi.org/project/pywin32/

  2. 以及从以下位置下载可执行程序进行安装:https://github.com/mhammond/pywin32/releases

  3. 包括使用以下来源的 .whl 文件进行安装:https://www.lfd.uci.edu/~gohlke/pythonlibs/(及其各自的 Python 版本和位),然后继续进行此处解释的“安装后”: Not able to use the win32gui module from pywin32 in Pycharm

  4. 来自 Forge https://sourceforge.net/projects/pywin32/

而且,这个错误仍然令人信服。我不太确定我做错了什么,或者使用的版本目前是否过时/不兼容。

我在带有 64 位可执行文件/.whl 文件的 Python 3.7 和 3.9 中尝试了 4 次安装。

这是我正在使用的代码

作为旁注,如果“hwnd”设置为“NONE”,代码就可以正常工作,但如果我对此进行评论并使用“hwnd = win32gui.FindWindow(None,'Calculator')”行,它只会显示即使打开了计算器应用程序,也会出现黑屏。

我想是因为进口。

import win32gui
import win32ui
import win32con
import numpy as np
import PIL 
import cv2 as cv


def screen():
        w = 1920
        h = 1080

        
        #hwnd = win32gui.FindWindow(None,'Calculator')

        hwnd = None

        wDC = win32gui.GetwindowDC(hwnd)
        dcObj = win32ui.CreateDCFromHandle(wDC)
        cDC = dcObj.CreateCompatibleDC()
        dataBitMap = win32ui.CreateBitmap()
        dataBitMap.CreateCompatibleBitmap(dcObj,w,h)
        cDC.SelectObject(dataBitMap)
        cDC.BitBlt((0,0),(w,h),dcObj,(0,win32con.SRCcopY)

        signedIntsArray = dataBitMap.GetBitmapBits(True)
        #img = np.fromstring(signedIntsArray,dtype='uint8')
        img = np.frombuffer(signedIntsArray,dtype='uint8')
        img.shape = (h,4)

                # free resources
        dcObj.DeleteDC()
        cDC.DeleteDC()
        win32gui.ReleaseDC(hwnd,wDC)
        win32gui.DeleteObject(dataBitMap.GetHandle())
        #img = img[...,:3]
        #img = np.ascontiguousarray(img)
        return img

while(True):
    
    sc = screen()
    resize = cv.resize(sc,(800,500))
    cv.imshow('idk',resize)

    if cv.waitKey(1) == ord('q'):
        cv.destroyAllWindows()
        break

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...