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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。