如何获取当前屏幕某个区域的截图

橘子皮... 2018-04-19 08:45:57
如何获取当前屏幕某个区域的截图,比如 100,100 - 200,200
目前的网上很多写法,遇到这个区域有QQ窗口的话,就抓不出来
...全文
1656 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
橘子皮... 2018-04-21
  • 打赏
  • 举报
回复
谢谢各位的热情回复,Call BitBlt(Picture1.hDC, 0, 0, w, h, hDCtmp, 0, 0, vbSrcCopy Or &H40000000)本来我也测试了
结果是一片漆黑什么都抓不到,然后神奇的事情发生了,我改回去然后又从加上 &H40000000,结果。。。。可以抓到了,晕啦



抓图纪念下,呵呵

橘子皮... 2018-04-21
  • 打赏
  • 举报
回复




舉杯邀明月 2018-04-21
  • 打赏
  • 举报
回复
vbSrcCopy = &HCC0020
舉杯邀明月 2018-04-21
  • 打赏
  • 举报
回复
引用 16 楼 PctGL 的回复:
https://bbs.csdn.net/topics/390847962

这个是正解


看起来是个好办法…………

可惜,对楼主遇到的情况,好像无效! 
最后那个参数,&H40000000、&H80000000、&HC0000000我都试过…………


上图左边就是“被Copy区域”,右边是程序的窗口。
Copy下来的图像,仍然“透过QQ窗口”,看到我写的代码了。
PctGL 2018-04-21
  • 打赏
  • 举报
回复
https://bbs.csdn.net/topics/390847962 这个是正解
舉杯邀明月 2018-04-20
  • 打赏
  • 举报
回复
再发张图片吧。
这里面,可以看到QQ聊天窗口、媒体播放器播放的Mp4视频、我用APlayer接口写的视频播放器窗口,
都是正常“抓”下来了的。
舉杯邀明月 2018-04-20
  • 打赏
  • 举报
回复
“你的代码”,跟我的代码,有实质区别么! hDC_Screen = GetDC(hWndDesk) 和 hDC_Screen = GetDC(0) 我都试过了,在我这儿,什么窗口都能抓下来……
橘子皮... 2018-04-20
  • 打赏
  • 举报
回复


我他么的也是无语了,你用的是我的代码么?没写错吧
赵4老师 2018-04-20
  • 打赏
  • 举报
回复
用高清摄像头对着屏幕拍! 我就不信BAT哪家的技术能防止我拍到!!
舉杯邀明月 2018-04-20
  • 打赏
  • 举报
回复
我刚才试了,聊天窗口仍然能被抓下来啊……


舉杯邀明月 2018-04-20
  • 打赏
  • 举报
回复
我KAO!居然会有这种效果? QQ的聊天窗口在前面,屏幕抓图时相当于“透明”的! 有时候,我想要这种效果,还没法达到呢…………  我昨晚上试的时候,是QQ的主窗口。 等下有空我再把代码重新写好,测试一下聊天窗口的效果。 我的也是Win7、64位,SP1旗舰版
舉杯邀明月 2018-04-20
  • 打赏
  • 举报
回复
我刚才试验出原因了: 你的VB6是设置了“以兼容模式运行”、并钩选了“禁用桌面元素”的。 而我的VB6是“正常模式”运行的。 你可以试试:编译成exe、退出VB6,让系统恢复“正常状态”。 然后,运行刚才编译好的exe程序来操作,就可以了。
舉杯邀明月 2018-04-20
  • 打赏
  • 举报
回复
我这儿,那些程序窗口的进程的权限是一样的。 都是“当前用户”的标准权限(普通的“管理员”)。
舉杯邀明月 2018-04-20
  • 打赏
  • 举报
回复
引用 12 楼 wowfiowow 的回复:
[quote=引用 10 楼 Chen8013 的回复:] “你的代码”,跟我的代码,有实质区别么! hDC_Screen = GetDC(hWndDesk) 和 hDC_Screen = GetDC(0) 我都试过了,在我这儿,什么窗口都能抓下来……
不行,0是我后来改的,hWndDesk也不行,奇怪了[/quote] 刚才我在QQ群里说这个,老马怀疑是“进程权限”问题。 你的VB6的进程权限,跟QQ的是否一样? 比如你的VB6设置了“兼容模式”,启动时是会“以管理员身份运行”启动的,而QQ是“正常启动”的?
橘子皮... 2018-04-20
  • 打赏
  • 举报
回复
引用 10 楼 Chen8013 的回复:
“你的代码”,跟我的代码,有实质区别么! hDC_Screen = GetDC(hWndDesk) 和 hDC_Screen = GetDC(0) 我都试过了,在我这儿,什么窗口都能抓下来……
不行,0是我后来改的,hWndDesk也不行,奇怪了
橘子皮... 2018-04-20
  • 打赏
  • 举报
回复

Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
        
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hiWnd As Long, ByVal hds As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

Private Sub Command1_Click()
    Dim hWndDesk As Long
    Dim hDC_Screen As Long
    Dim cx&, cy&, cw&, ch As Long
    
    cw = 500
    ch = 500
    
    cx = 0
    cy = 0
    
    
    hWndDesk = GetDesktopWindow()
    hDC_Screen = GetDC(0)
    
    BitBlt Picture1.hDC, 0&, 0&, cw, ch, hDC_Screen, cx, cy, &HCC0020
    ReleaseDC hWndDesk, hDC_Screen
    
    Picture1.Refresh
End Sub


我是win7  64
橘子皮... 2018-04-20
  • 打赏
  • 举报
回复
橘子皮... 2018-04-20
  • 打赏
  • 举报
回复
你这个写法早就试过了,不行,不知道为什么,其他可以,qq窗体就抓不到,抓到的是后面的句柄,如图
舉杯邀明月 2018-04-19
  • 打赏
  • 举报
回复
我是不是应该放张“全屏”的图片,这样容易看出效果点?
舉杯邀明月 2018-04-19
  • 打赏
  • 举报
回复
有“很多种定法”???


反正我会的大概就是这种了,刚才试了,QQ窗口的也是抓下来了的。
基于Java的qq截图工具 设计软件源码+word毕业论文文档。基于java的QQ截屏工具的设计和实现能够实现对屏幕的随机截取,复制,保存以及添加文字等操作,便于用户对数据的处理。 该软件的功能: (1)随机获取屏幕指定区域; (2)编辑(添加文字)截图; (3)存储截图; 毕业设计任务书 2 摘要 6 Abstract 7 1. 绪论 10 1.1课题背景 10 1.2课题研究内容 10 2.可行性分析及开发环境的选择 11 2.1可行性分析 11 2.1.1技术可行性 11 2.1.2经济可行性 11 2.1.3法律可行性 12 2.1.4可行性结论 12 2.2运行环境的选择 12 2.3开发工具的选择 12 2.4 B/S结构 13 3.系统需求分析 15 3.1业务需求 15 3.2用户需求 15 3.3性能需求 15 4.系统设计 16 4.1系统的设计目标 16 4.2系统功能整体设计 16 5.系统设计实现 19 5.1系统主界面实现 19 5.2系统截图实现 20 5.3截图的编辑实现 26 5.4截图的存储实现 37 6.系统测试 41 6.1截图软件系统测试 41 6.1.1保存选项测试 41 6.1.2复制到剪切板选项测试 41 6.1.3编辑选项测试 42 6.2测试评价 42 结论 43 参考文献 44 致谢 45 外文引用 46 中文翻译 55 1. 绪论 截图,就是绝对的记录计算机某一的区域画面,以图片的方式进行存储,供人们使用,按照个人的需要选择其中的某个片段将其保存下来,并且截取到的屏幕与你眼睛所看到的内容一模一样,根据需求可以保存下来自己使用,或者发送给其他人一同使用该截图截图经过电脑获取的能呈现在显示屏幕以及别的液晶设施上的可观察图像。一般来说,截图可以使用计算机本身自带的或者某些程序附带的截图小程序如qq截取,当然也有某些特定的截图工具可以进行截图如FastStone Capture8.2,同时相机拍摄也可以达到一些效果。截图也和某些事物相似,也有动静之分,静态截图能够生成一个像素文件,如以.bmp,.png,.jpg为后缀的文件。动态截图生成一个动态文件,如以.gif为后缀的文件。截图常常用来展示某一时间,某一空间下的各个元素之间的状态,以及各种游戏的每个精心的辉宏的场景,当然也为了清晰的传达当时想要表达的意思。 1.1课题背景 当今时代是飞速发展的信息时代,人们在对信息的处理中对图像的处理量与日俱增,这一点在文档人员上显得非常突出。不管你是在qq聊天还是在办公室里执行文档制作,都会时不时的截取一张或两张甚至更多的图片作为信息进行处理、进行编辑。高效的工作已经成为社会主题,为了提高生活节奏和工作效率,我们可以使用一些截图工具来处理一些复杂的文档。截图工具能够截图,存储,拷贝,可以帮我们改善生活,提高工作效率,我们生活中的一些问题可以通过它来解决。常用的截图方法有:各种浏览器自带的截图,某些聊天工具自带的截图,FastStone Capture8.2等专用截图工具截图,计算机操作系统自身附带的截图小软件截图,但这些方法都有一些这样或那样的局限性,这样,这款精致高效的、即学即用的Java截图软件就能够满足这方面客户需求。 1.2课题研究内容 以简单易操作为出发点,设计出这款单机版的截图工具,获取屏幕灵活,可以随机获取屏幕任意区域并且可以对获取到的截图进行存储,编辑(添加文字)等操作,对这些操作设置了自定义热键。该软件主要有捕获光标功能,可以指定截取屏幕区域。 图片可以自命名,获取到的截图可以依据当前系统时间进行命名,也可以通过模板(文件名)进行命名,拥有自命名功能。 获取到的截图可以在窗口中央位置进行预览,并且可以指定存储位置将截图用bmp,jpeg,png等(静态), gif(动态)其中的某一种图像格式将其存储,拥有预览和存储功能。 多层菜单栏,可以获取一到多个截图,并以多个界面显示出来,拥有层叠功能。 可以通过编辑为截图添加文字,为截图添加一些描述信息之后仍可以将截图存储,用户有编辑功能。 2.可行性分析及开发环境的选择 2.1可行性分析 进行项目的可行性分析,就必须得结合多方面的知识以及常识,并将它们与即将进行的项目进行比较,从而将项目的至关重要的内容和相互呼应的条件,如社会的需要、提供各种物资的数量、各种方向建设的范围、抱有特色的目标、需求设备类型的选择、自然和人为环境的影响、项目启动所需的资金筹集、最终是否能够经济上获取极大的收入,从科学能力、社会发展、项目设计等众多方向想大量有关工作人员进行咨询,在此基础上展开对项目的仔仔细细的专研,以保证项目的进一步实施,并且结合多方面的资料,对项目给出详细的方案,当然也必须将收益进行预估,必须保

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧