//
//
//
//
//
//
//
//
//
//
软件Tags:
易语言代码抓图工具源码系统结构:取代码编辑区和滚动条句柄,取易语言句柄,取窗口类名,取窗口标题,取滚动条最大值,取滚动条位置,置滚动条位置,刷新窗口显示,截取窗口位图,取要拼接图片文件名数组,FindWindowEx,取得类名称_,取窗口矩形_,取窗口标题_,发送消息1_,发送消息2_,发送消息3_,取平坦滚动条信息_,重画窗口_,打印窗口_,取设备场景_,释放设备场景_,寻找子窗口_,复制场景位图_,删除设备场景_,删除对象_,取对象属性_,GetObjectA,CreateCompatibleDC,GetDIBits_BimapInfo,GetDIBits,CopyMemory_BITMAPINFO,CopyMemory_BITMAPFILEHEADER,DeleteDC,GetWindowRect,IsWindow,SelectObject,PrintWindow,CreateCompatibleBitmap,DeleteObject,GetDC,ReleaseDC,IsWindowVisible,GetWindowTextLengthA,GetWindowTextA,BitBlt,创建内存场景_,创建设备位图_,选入设备场景_,取得窗口信息_,浏览文件夹对话框_,从列表id取路径_,释放分配内容_, ======窗口程序集1 || ||------__启动窗口_创建完毕 || ||------取代码编辑区和滚动条句柄 || ||------取易语言句柄 || ||------取窗口类名 || ||------取窗口标题 || ||------取滚动条最大值 || ||------取滚动条位置 || ||------置滚动条位置 || ||------刷新窗口显示 || ||------_按钮1_被单击 || ||------_按钮2_被单击 || ||------截取窗口位图 || ||------_按钮3_被单击 || ||------_列表框1_列表项被选择 || ||------_列表框2_列表项被选择 || ||------_编辑框2_内容被改变 || ||------_编辑框1_内容被改变 || ||------_滑块条1_位置被改变 || ||------_纵向滚动条1_位置被改变 || ||------__启动窗口_将被销毁 || ||------_横向滚动条1_位置被改变 || ||------_按钮4_被单击 || ||------取要拼接图片文件名数组 || ||------_选择夹1_子夹被改变 || ||------_按钮5_被单击 || ||------_纵向滚动条2_位置被改变 || ||------_横向滚动条2_位置被改变 || ||------_按钮7_被单击 || || ======调用的Dll || ||---[dll]------FindWindowEx || ||---[dll]------取得类名称_ || ||---[dll]------取窗口矩形_ || ||---[dll]------取窗口标题_ || ||---[dll]------发送消息1_ || ||---[dll]------发送消息2_ || ||---[dll]------发送消息3_ || ||---[dll]------取平坦滚动条信息_ || ||---[dll]------重画窗口_ || ||---[dll]------打印窗口_ || ||---[dll]------取设备场景_ || ||---[dll]------释放设备场景_ || ||---[dll]------寻找子窗口_ || ||---[dll]------复制场景位图_ || ||---[dll]------删除设备场景_ || ||---[dll]------删除对象_ || ||---[dll]------取对象属性_ || ||---[dll]------GetObjectA || ||---[dll]------CreateCompatibleDC || ||---[dll]------GetDIBits_BimapInfo || ||---[dll]------GetDIBits || ||---[dll]------CopyMemory_BITMAPINFO || ||---[dll]------CopyMemory_BITMAPFILEHEADER || ||---[dll]------DeleteDC || ||---[dll]------GetWindowRect || ||---[dll]------IsWindow || ||---[dll]------SelectObject || ||---[dll]------PrintWindow || ||---[dll]------CreateCompatibleBitmap || ||---[dll]------DeleteObject || ||---[dll]------GetDC || ||---[dll]------ReleaseDC || ||---[dll]------IsWindowVisible || ||---[dll]------GetWindowTextLengthA || ||---[dll]------GetWindowTextA || ||---[dll]------BitBlt || ||---[dll]------创建内存场景_ || ||---[dll]------创建设备位图_ || ||---[dll]------选入设备场景_ || ||---[dll]------取得窗口信息_ || ||---[dll]------浏览文件夹对话框_ || ||---[dll]------从列表id取路径_ || ||---[dll]------释放分配内容_ 调用的DLL命令: .DLL命令FindWindowEx,整数型,"user32","FindWindowExA",,在窗口列表中寻找与指定条件相符的第一个子窗口找到的窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError .参数hWnd1,整数型,,在其中查找子的父窗口。如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找) .参数hWnd2,整数型,,从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索 .参数lpsz1,文本型,,欲搜索的类名。零表示忽略 .参数lpsz2,文本型,,欲搜索的类名。零表示忽略; .DLL命令取得类名称_,整数型,"user32","GetClassNameA" .参数窗口句柄,整数型 .参数缓冲区,文本型,传址 .参数缓冲区长度,整数型 .DLL命令取窗口矩形_,整数型,"user32","GetWindowRect" .参数窗口句柄,整数型 .参数矩形区域,矩形_ .DLL命令取窗口标题_,整数型,"user32","GetWindowTextA",,取得一个窗体的标题(caption)文字,或者一个控件的内容(在vb里使用:使用vb窗体或控件的caption或text属性)复制到lpString的字串长度;不包括空中止字符。会设置GetLastError .参数窗口句柄,整数型,,欲获取文字的那个窗口的句柄 .参数缓冲区,文本型,,预定义的一个缓冲区,至少有cch+1个字符大小;随同窗口文字载入 .参数缓冲尺寸,整数型,,lp缓冲区的长度; .DLL命令发送消息1_,整数型,"user32","SendMessageA",,调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。SendMessageBynum,;SendMessageByString是该函数的“类型安全”声明形式由具体的消息决定 .参数窗口句柄,整数型,,要接收消息的那个窗口的句柄 .参数信息值,整数型,,消息的标识符 .参数参数一,整数型,传址,具体取决于消息 .参数参数二,整数型,传址,具体取决于消息; .DLL命令发送消息2_,整数型,"user32","SendMessageA",,调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。SendMessageBynum,;SendMessageByString是该函数的“类型安全”声明形式由具体的消息决定 .参数窗口句柄,整数型,,要接收消息的那个窗口的句柄 .参数信息值,整数型,,消息的标识符 .参数参数一,整数型,,具体取决于消息 .参数参数二,整数型,,具体取决于消息; .DLL命令发送消息3_,整数型,"user32","SendMessageA",,调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。SendMessageBynum,;SendMessageByString是该函数的“类型安全”声明形式由具体的消息决定 .参数窗口句柄,整数型,,要接收消息的那个窗口的句柄 .参数信息值,整数型,,消息的标识符 .参数参数一,整数型,,具体取决于消息 .参数参数二,滚动信息_,传址,具体取决于消息; .DLL命令取平坦滚动条信息_,逻辑型,"comctl32","FlatSB_GetScrollInfo",,执行成功返回非0 .参数窗口句柄,整数型,,hWnd .参数平坦滚动条类型,整数型,,fnBar .参数平坦滚动条结构,滚动信息_,,lpsi .DLL命令重画窗口_,整数型,"user32","RedrawWindow" .参数窗口句柄,整数型 .参数矩形,矩形_ .参数区域,整数型 .参数清楚模式,整数型 .DLL命令打印窗口_,整数型,"user32.dll","PrintWindow",,PrintWindow可以实现不会被其他窗口遮挡的抓图 .参数窗口句柄,整数型,,hWnd,要打印窗口的窗口句柄 .参数设备场景句柄,整数型,,hdcBlt,在其中显示的设备场景 .参数标识符,整数型,,nFlags,给0即可 .DLL命令取设备场景_,整数型,"user32","GetDC",,获取指定窗口的设备场景指定窗口的设备场景句柄,出错则为0 .参数窗口句柄,整数型,,hwnd,将获取其设备场景的窗口的句柄。若为0,则要获取整个屏幕的DC; .DLL命令释放设备场景_,整数型,"user32","ReleaseDC",,释放由调用GetDC或GetWindowDC函数获取的指定设备场景。它对类或私有设备场景无效(但这样的调用不会造成损害)执行成功为1,否则为0 .参数窗口句柄,整数型,,hwnd,要释放的设备场景相关的窗口句柄 .参数设备场景,整数型,,hdc,要释放的设备场景句柄; .DLL命令寻找子窗口_,整数型,"user32","FindWindowExA",,在窗口列表中寻找与指定条件相符的第一个子窗口找到的窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError .参数窗口句柄1,整数型,,在其中查找子的父窗口。如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找) .参数窗口句柄2,整数型,,从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索 .参数欲搜索的类名1,文本型,,欲搜索的类名。零表示忽略 .参数欲搜索的类名2,文本型,,欲搜索的类名。零表示忽略; .DLL命令复制场景位图_,整数型,"gdi32.dll","BitBlt" .参数目标设备场景,整数型,,hDestDC,目标设备场景 .参数目标横坐标,整数型,,x,对目标设备场景中目标矩形左上角位置进行描述的那个点 .参数目标纵坐标,整数型,,y,对目标设备场景中目标矩形左上角位置进行描述的那个点 .参数传输图像宽度,整数型,,nWidth,欲传输图象的宽度 .参数传输图像高度,整数型,,nHeight,欲传输图象的高度 .参数源设备场景,整数型,,hSrcDC,源设备场景。如光栅运算未指定源,则应设为0 .参数源横坐标,整数型,,xSrc,对源设备场景中源矩形左上角位置进行描述的那个点 .参数源纵坐标,整数型,,ySrc,对源设备场景中源矩形左上角位置进行描述的那个点 .参数光栅运算方式,整数型,,dwRop,传输过程要执行的光栅运算 .DLL命令删除设备场景_,整数型,"gdi32.dll","DeleteDC" .参数设备场景句柄,整数型,,hdc,将要删除的设备场景 .DLL命令删除对象_,整数型,"gdi32.dll","DeleteObject",,DeleteObject .参数对象句柄,整数型,,hObject,一个GDI对象的句柄 .DLL命令取对象属性_,整数型,"gdi32","GetObjectA" .参数对象句柄,整数型 .参数数据尺寸,整数型 .参数属性,位图结构_ .DLL命令GetObjectA,整数型,,"GetObjectA" .参数hgdiobj .参数cbBuffer .参数lpvObject,BITMAP .DLL命令CreateCompatibleDC,整数型,,"CreateCompatibleDC" .参数hdc,整数型 .DLL命令GetDIBits_BimapInfo,整数型,,"GetDIBits" .参数HDC .参数hBitmap .参数nStartScan .参数nNumScans .参数lpBits .参数lpBI,BITMAPINFO .参数wUsage .DLL命令GetDIBits,整数型,,"GetDIBits" .参数HDC .参数hBitmap .参数nStartScan .参数nNumScans .参数lpBits,字节集 .参数lpBI,BITMAPINFO .参数wUsage .DLL命令CopyMemory_BITMAPINFO,整数型,,"RtlMoveMemory" .参数Destination,字节集 .参数Source,BITMAPINFO .参数Length .DLL命令CopyMemory_BITMAPFILEHEADER,整数型,,"RtlMoveMemory" .参数Destination,字节集 .参数Source,BITMAPFILEHEADER .参数Length .DLL命令DeleteDC,整数型,,"DeleteDC" .参数hdc .DLL命令GetWindowRect,逻辑型 .参数hWnd,整数型 .参数lpRect,RECT .DLL命令IsWindow,逻辑型 .参数hWnd,整数型 .DLL命令SelectObject,整数型,,"SelectObject" .参数hdc .参数hgdiobj .DLL命令PrintWindow,逻辑型 .参数hwnd,整数型 .参数hdcBlt,整数型 .参数nFlags,整数型 .DLL命令CreateCompatibleBitmap,整数型,,"CreateCompatibleBitmap" .参数hdc .参数nWidth .参数nHeight .DLL命令DeleteObject,逻辑型,,"DeleteObject" .参数hObject,整数型 .DLL命令GetDC,整数型 .参数hWnd,整数型 .DLL命令ReleaseDC,整数型 .参数hWnd,整数型 .参数hDC,整数型 .DLL命令IsWindowVisible,逻辑型 .参数hWnd,整数型 .DLL命令GetWindowTextLengthA,整数型 .参数hWnd,整数型 .DLL命令GetWindowTextA,整数型 .参数hWnd,整数型 .参数lpString,文本型 .参数nMaxCount,整数型 .DLL命令BitBlt,逻辑型 .参数hdcDest,整数型 .参数nXDest,整数型 .参数nYDest,整数型 .参数nWidth,整数型 .参数nHeight,整数型 .参数hdcSrc,整数型 .参数nXSrc,整数型 .参数nYSrc,整数型 .参数dwRop,整数型 .DLL命令创建内存场景_,整数型,"Gdi32","CreateCompatibleDC" .参数设备场景句柄,整数型 .DLL命令创建设备位图_,整数型,"gdi32","CreateCompatibleBitmap" .参数设备场景句柄,整数型 .参数宽度,整数型 .参数高度,整数型 .DLL命令选入设备场景_,整数型,"gdi32.dll","SelectObject",,SelectObject .参数场景句柄,整数型,,hdc .参数对象句柄,整数型,,hobject .DLL命令取得窗口信息_,整数型,"user32","GetWindowLongA",,从指定窗口的结构中取得信息由nIndex决定。零表示出错。会设置GetLastError .参数窗口句柄,整数型,,欲为其获取信息的窗口的句柄 .参数属性,整数型,,欲取回的信息,可以是下述任何一个常数:;GWL_EXSTYLE:扩展窗口样式;GWL_STYLE:窗口样式;GWL_WNDPROC:该窗口的窗口函数的地址;GWL_HINSTANCE:拥有窗口的实例的句柄;GWL_HWNDPARENT:该窗口之父的句柄。不要用SetWindowWord来改变这个值;GWL_ID:对话框中一个子窗口的标识符;GWL_USERDATA:含义由应用程序规定;DWL_DLGPROC:这个窗口的对话框函数地址;DWL_MSGRESULT:在对话框函数中处理的一条消息返回的值;DWL_USER:含义由应用程序规定; .DLL命令浏览文件夹对话框_,整数型,"shell32.dll","SHBrowseForFolderA" .参数浏览文件夹结构,文件夹信息_ .DLL命令从列表id取路径_,整数型,"shell32.dll","SHGetPathFromIDListA" .参数结构指针,整数型,,pIdl .参数路径,文本型,传址,pszPath .DLL命令释放分配内容_,,"ole32.dll","CoTaskMemFree" .参数内存块指针,整数型,,pv
