python win32模块详解,python调用win32 api

  python win32模块详解,python调用win32 api

  #需要导入模块:导入win32 GUI [ as别名]

  #或:来自win32 guiimporttwdfbxas别名]

  清晰度屏幕(自身) :

  " " pilimageofcurrentwindowscreen .(thewindowmustbeonthetop)

  参考:https://msdn .Microsoft.com/en-us/library/DD 183402(v=vs . 85). aspx

  # openglwindowscannotgetfromit它是hwnd,所以我们使用屏幕

  #获取窗口大小和偏移

  左、上、右、下=self.rect

  宽度,高度=从右向左,从下向上

  #窗口的设备上下文

  #制作临时哥伦比亚特区

  #在内存中创建一个临时位图,这是一个PyHANDLE对象

  hbmp=win32 GUI。createcompatiblebitmap(hdc win,width,height))。

  #选择位图对于临时直流电

  win32GUI.selectobject(HDCmem,hbmp))。

  #复制比特到临时直流电

  win32GUI.bitblt(HDCmem,0,0,width,height,

  # checkthebitmapobjectinfomation

  BMP=win32GUI.getobject(hbmp)

  bi=BITMAPINFOHEADER()

  毕。bi size=ctypes。sizeof(bitmapinfo头).

  bi.biWidth=bmp.bmWidth

  毕。BIH身高=BMP。BM高度

  bi.biPlanes=bmp.bmPlanes

  bi.biBitCount=bmp.bmBitsPixel

  bi.biCompression=0 # BI_RGB

  bi.biSizeImage=0

  biXPelsPerMeter=0

  bi.biYPelsPerMeter=0

  毕。biclrsered=0

  bi.biClrImportant=0

  #计算位的总大小

  pixel=bmp.bmBitsPixel

  size=(BMP .BM宽度*像素pixel-1)/像素)* 4 * BMP。BM高度

  BUF=(ctypes.c_char*size)))

  #读取位进入缓冲区

  温德尔. GDI32.getdibits(HDCmem,hbmp.handle,0,bmp.bmHeight,buf,ctypes.byref(bi,win32con.dib_RGB

  #做一个太平航运形象

  img=image.frombuffer(RGB),)bmp.bmWidth,bmp.bmHeight),buf,)raw),BGRX),0,1)。

  img=img。转置(图像。flip _ top _ bottom)。

  #清理

  win32GUI.deleteobject(hbmp))。

  win32 GUI.delete对象(hdc内存).

  win32GUI.releasedc(hwnd,hdcwin))。

  返回图片

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: