小 小飞龙 Unregistered / Unconfirmed GUEST, unregistred user! 2006-08-07 #1 如果软件比较大,可能超过屏幕,我要截图要怎么截才能全部截到, 或者是软件有部分给移出屏幕了,这2种情况我不知道怎么才能截到完整的, 请高手指点一下,要如何写代码,或者用什么技术,给个提示
1 16cy Unregistered / Unconfirmed GUEST, unregistred user! 2006-08-15 #7 hn:=findwindow('xxxx','xxxx');//获得该窗口名柄 getwindowrect(hn,rect);//得到窗口的左上、右下坐标,并赋给rect dc:=getdc(hn);//获得该窗口画布DC句柄 dc.Canvas.CopyRect(const Dest: TRect, dc, rect);//复制该窗口内的全部到 dest 内 然后对dest进行操作就可以了。
hn:=findwindow('xxxx','xxxx');//获得该窗口名柄 getwindowrect(hn,rect);//得到窗口的左上、右下坐标,并赋给rect dc:=getdc(hn);//获得该窗口画布DC句柄 dc.Canvas.CopyRect(const Dest: TRect, dc, rect);//复制该窗口内的全部到 dest 内 然后对dest进行操作就可以了。
1 16cy Unregistered / Unconfirmed GUEST, unregistred user! 2006-08-17 #10 错在什么地方? 我用这种方法能实现截屏,坐标是窗口的相对坐标,不是屏幕的坐标。 也就是说不管你窗口移到什么位置,都能把窗口里面的东西捉到
小 小飞龙 Unregistered / Unconfirmed GUEST, unregistred user! 2006-08-17 #11 dc.Canvas.CopyRect(const Dest: TRect, dc, rect);//复制该窗口内的全部到 dest 内 这个明显就是错误吗 dc那里来还有canvas呢 你自己试试就知道了
dc.Canvas.CopyRect(const Dest: TRect, dc, rect);//复制该窗口内的全部到 dest 内 这个明显就是错误吗 dc那里来还有canvas呢 你自己试试就知道了
1 16cy Unregistered / Unconfirmed GUEST, unregistred user! 2006-08-18 #12 不好意思,是我写错了,改成如下的: hn:=findwindow('xxxx','xxxx');//获得该窗口名柄 getwindowrect(hn,rect);//得到窗口的左上、右下坐标,并赋给rect dc:=getdc(hn);//获得该窗口画布DC句柄 bmp1canvas.create; bmp1canvas.handle:=dc; bmp1.Canvas.CopyRect(destrect,dc,rect); bmp1canvas.free; ....... 用savetofile方法存到硬盘中
不好意思,是我写错了,改成如下的: hn:=findwindow('xxxx','xxxx');//获得该窗口名柄 getwindowrect(hn,rect);//得到窗口的左上、右下坐标,并赋给rect dc:=getdc(hn);//获得该窗口画布DC句柄 bmp1canvas.create; bmp1canvas.handle:=dc; bmp1.Canvas.CopyRect(destrect,dc,rect); bmp1canvas.free; ....... 用savetofile方法存到硬盘中
Z zswang Unregistered / Unconfirmed GUEST, unregistred user! 2006-08-22 #14 如果截取的是本程序的界面可以用 TWinControl.PaintTo();
小 小飞龙 Unregistered / Unconfirmed GUEST, unregistred user! 2006-08-23 #15 to zswang: 不是本程序的,本程序的确实可以大部分都可以做到