//
//
//
//
//
//
//
//
//
//
软件Tags:
易语言代码框截图源码系统结构:截取窗口位图,onhook,unhook,取垂直滚动条,枚举子窗口,取子窗口,枚举子窗口2,更新图片,GetObjectA,CreateCompatibleDC,GetDIBits_BimapInfo,GetDIBits,CopyMemory_BITMAPINFO,CopyMemory_BITMAPFILEHEADER,DeleteDC,GetWindowRect,IsWindow,SelectObject,PrintWindow,CreateCompatibleBitmap,DeleteObject,GetDC,ReleaseDC,EnumWindows,IsWindowVisible,GetWindowTextLengthA,GetWindowTextA,API_捕获鼠标,API_释放鼠标,GetCursorPos,WindowFromPoint,SetScrollInfo,GetScrollInfo,SendMessage,WSAGetLastError,FormatMessage,GetParent,GetClassName,EnumChildWindows,MoveWindow,GetWindowLong,API_GetWindowRect,GetClientRect,FindWindowA,FindWindowExA,API_SetParent,ScreenToClient,SetWindowsHookExA,CallNextHookEx,UnhookWindowsHookEx,PostMessageA,SendMessageA,LoadLibraryA,FreeLibrary,GetProcAddress,GetWindowThreadProcessId,GetPropA, ======窗口程序集1 || ||------_句柄编辑框_鼠标左键被按下 || ||------_句柄编辑框_鼠标位置被移动 || ||------_句柄编辑框_鼠标左键被放开 || ||------_按钮_确定_被单击 || ||------__启动窗口_创建完毕 || ||------_按钮1_被单击 || ||------__启动窗口_将被销毁 || || ======程序集1 || ||------截取窗口位图 || ||------onhook || ||------unhook || ||------取垂直滚动条 || ||------枚举子窗口 || ||------取子窗口 || ||------枚举子窗口2 || ||------更新图片 || || ======窗口程序集2 || ||------_窗口1_创建完毕 || ||------_窗口1_尺寸被改变 || ||------_画板1_鼠标位置被移动 || ||------_画板1_鼠标左键被放开 || ||------_标签1_反馈事件 || ||------_标签2_反馈事件 || ||------_窗口1_被取消激活 || ||------_窗口1_失去焦点 || || ======调用的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]------EnumWindows || ||---[dll]------IsWindowVisible || ||---[dll]------GetWindowTextLengthA || ||---[dll]------GetWindowTextA || ||---[dll]------API_捕获鼠标 || ||---[dll]------API_释放鼠标 || ||---[dll]------GetCursorPos || ||---[dll]------WindowFromPoint || ||---[dll]------SetScrollInfo || ||---[dll]------GetScrollInfo || ||---[dll]------SendMessage || ||---[dll]------WSAGetLastError || ||---[dll]------FormatMessage || ||---[dll]------GetParent || ||---[dll]------GetClassName || ||---[dll]------EnumChildWindows || ||---[dll]------MoveWindow || ||---[dll]------GetWindowLong || ||---[dll]------API_GetWindowRect || ||---[dll]------GetClientRect || ||---[dll]------FindWindowA || ||---[dll]------FindWindowExA || ||---[dll]------API_SetParent || ||---[dll]------ScreenToClient || ||---[dll]------SetWindowsHookExA || ||---[dll]------CallNextHookEx || ||---[dll]------UnhookWindowsHookEx || ||---[dll]------PostMessageA || ||---[dll]------SendMessageA || ||---[dll]------LoadLibraryA || ||---[dll]------FreeLibrary || ||---[dll]------GetProcAddress || ||---[dll]------GetWindowThreadProcessId || ||---[dll]------GetPropA 调用的DLL命令: .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命令EnumWindows,逻辑型 .参数lpEnumFunc,整数型 .参数lParam,整数型 .DLL命令IsWindowVisible,逻辑型 .参数hWnd,整数型 .DLL命令GetWindowTextLengthA,整数型 .参数hWnd,整数型 .DLL命令GetWindowTextA,整数型 .参数hWnd,整数型 .参数lpString,文本型 .参数nMaxCount,整数型 .DLL命令API_捕获鼠标,整数型,"user32","SetCapture",,将鼠标捕获设置到指定的窗口。在鼠标按钮按下的时候,这个窗口会为当前应用程序或整个系统接收所有鼠标输入之前拥有鼠标捕获的窗口的句柄 .参数窗口句柄,整数型,,要接收所有鼠标输入的窗口的句柄; .DLL命令API_释放鼠标,整数型,"user32","ReleaseCapture",,为当前的应用程序释放鼠标捕获TRUE(非零)表示成功,零表示失败 .DLL命令GetCursorPos,逻辑型,"user32.dll","GetCursorPos" .参数光标位置,,传址数组 .DLL命令WindowFromPoint,整数型,"user32.dll","WindowFromPoint" .参数X轴光标,整数型 .参数Y轴光标,整数型 .DLL命令SetScrollInfo,整数型,"user32","SetScrollInfo",,返回滚动条的当前位置 .参数句柄,整数型 .参数n,整数型 .参数lpcScrollInfo,SCROLLINFO .参数重画,逻辑型 .DLL命令GetScrollInfo,逻辑型,"user32","GetScrollInfo" .参数hWnd,整数型 .参数n,整数型 .参数lpScrollInfo,SCROLLINFO,传址 .DLL命令SendMessage,整数型,"user32","SendMessageA",,调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。SendMessageBynum,;SendMessageByString是该函数的“类型安全”声明形式由具体的消息决定 .参数hwnd,整数型,,要接收消息的那个窗口的句柄 .参数wMsg,整数型,,消息的标识符 .参数wParam,整数型,,具体取决于消息 .参数lParam,整数型,,具体取决于消息; .DLL命令WSAGetLastError,整数型,"ws2_32.dll","WSAGetLastError" .DLL命令FormatMessage,整数型,,"FormatMessageA" .参数dwFlags,整数型 .参数lpSource,整数型 .参数dwMessageId,整数型 .参数dwLanguageId,整数型 .参数lpBuffer,文本型,传址 .参数nSize,整数型 .参数Arguments,整数型 .DLL命令GetParent,整数型,"user32","GetParent",,判断指定窗口的父窗口父窗口的句柄。如窗口没有父,或遇到错误,则返回零。会设置GetLastError .参数窗口句柄,整数型,,欲测试的窗口的句柄; .DLL命令GetClassName,整数型,"user32.dll","GetClassNameA" .参数句柄,整数型 .参数文本,文本型 .参数文本长度,整数型 .DLL命令EnumChildWindows,整数型,"user32","EnumChildWindows" .参数父窗口句柄,整数型 .参数子窗口调用指针,子程序指针 .参数枚举期间传递的操作值,整数型,传址 .DLL命令MoveWindow,整数型,"user32","MoveWindow",,改变指定窗口的位置和大小。顶级窗口可能受最大或最小尺寸的限制,那些尺寸优先于这里设置的参数非零表示成功,零表示失败 .参数hwnd,整数型,,欲移动窗口的句柄 .参数x,整数型,,窗口新的左侧位置 .参数y,整数型,,窗口新的顶部位置 .参数nWidth,整数型,,窗口的新宽度 .参数nHeight,整数型,,窗口的高宽度 .参数bRepaint,整数型,,如窗口此时应重画,则设为TRUE(非零)。FALSE(零)则表明应用程序会自己决定是否重画窗口; .DLL命令GetWindowLong,整数型,"user32.dll","GetWindowLongA" .参数句柄,整数型 .参数信息,整数型 .DLL命令API_GetWindowRect,整数型,"user32","GetWindowRect",,获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内非零表示成功,零表示失败。会设置GetLastError .参数hwnd,整数型,,想获得范围矩形的那个窗口的句柄 .参数lpRect,RECT,,RECT,屏幕坐标中随同窗口装载的矩形; .DLL命令GetClientRect,整数型,"user32","GetClientRect",,返回指定窗口客户区矩形的大小非零表示成功,零表示失败。会设置GetLastError .参数hwnd,整数型,,欲计算大小的目标窗口 .参数lpRect,RECT,,RECT,指定一个矩形,用客户区域的大小载入(以像素为单位); .DLL命令FindWindowA,整数型,"user32.dll","FindWindowA" .参数lpCalssName,文本型 .参数lpWindowName,整数型 .DLL命令FindWindowExA,整数型,"user32.dll" .参数hWnd1,整数型 .参数hWnd2,整数型 .参数lpsz1,文本型 .参数lpsz2,文本型 .DLL命令API_SetParent,整数型,"user32","SetParent",,指定一个窗口的新父(在vb里使用:利用这个函数,vb可以多种形式支持子窗口。例如,可将控件从一个容器移至窗体中的另一个相当 .参数hWndChild,整数型,,子窗口的句柄 .参数hWndNewParent,整数型,,hWndChild的新父; .DLL命令ScreenToClient,,"user32","ScreenToClient" .参数hWnd,整数型 .参数lpPoint,POINT .DLL命令SetWindowsHookExA,整数型,,,,Hook .参数idHook,整数型 .参数lpfn,子程序指针 .参数nMod,整数型 .参数dwThreadID,整数型 .DLL命令CallNextHookEx,整数型 .参数hhook,整数型 .参数nCode,整数型 .参数wParam,整数型 .参数lParam,整数型 .DLL命令UnhookWindowsHookEx,逻辑型 .参数hhook,整数型 .DLL命令PostMessageA,逻辑型 .参数hWnd,整数型 .参数msg,整数型 .参数lparam,整数型 .参数waparam,整数型 .DLL命令SendMessageA,整数型 .参数hWnd,整数型 .参数msg,整数型 .参数lparam,整数型 .参数waparam,整数型 .DLL命令LoadLibraryA,整数型 .参数lpFileName,文本型 .DLL命令FreeLibrary,逻辑型 .参数hMod,整数型 .DLL命令GetProcAddress,子程序指针 .参数hMod,整数型 .参数lpFileName,文本型 .DLL命令GetWindowThreadProcessId,整数型 .参数hwnd,整数型 .参数lpProcessID,整数型 .DLL命令GetPropA,整数型 .参数hWnd,整数型 .参数lpString,文本型
