| 发表于:2007-05-07 16:32:41 楼主 |
我写了一个抓屏的小软件,抓屏的代码用的是 private image getscr() { int w=system.windows.forms.screen.primaryscreen.bounds.right; int h=system.windows.forms.screen.primaryscreen.bounds.bottom; intptr scrwnd = getdesktopwindow(); intptr hdcscr = getwindowdc(scrwnd); intptr hdcmem = createcompatibledc(hdcscr); intptr bmpmem = createcompatiblebitmap(hdcscr,w,h);//gdi内存图像 bmpmem = selectobject(hdcmem,bmpmem);//把bmpmem弄进去 bitblt(hdcmem,0,0,w,h,hdcscr,0,0,srccopy);//拷贝dc bmpmem = selectobject(hdcmem,bmpmem);//把bmpmem弄出来 deletedc (hdcmem);releasedc (scrwnd,hdcscr);//处理后事 image bmp = image.fromhbitmap(bmpmem); deleteobject (bmpmem);//清理 return bmp; } 这个api 但是这个代码的效率明显不高呀,开了一组线程分别使用他们的时候(不是并发的,加了锁的,比如每隔100纳秒就抓一次屏幕),但抓的时候屏幕有明显的卡的现象,请问还有没有其他高效率的抓屏程序呀? |
|
|
|
|