各位前辈:
小弟是个Delphi初学者,近日编了一个简单的抓屏程序,可是为什么用它抓一些播放
软件播放的视频图像,却只有背景,还有的就是有些偷屏软件也不能看到对方的视频文件,
请问有没有哪位大哥大姐能告诉小弟如何才能抓住和查看对方的视频文件。小弟先谢了!!!
小弟是个Delphi初学者,近日编了一个简单的抓屏程序,可是为什么用它抓一些播放
软件播放的视频图像,却只有背景,还有的就是有些偷屏软件也不能看到对方的视频文件,
请问有没有哪位大哥大姐能告诉小弟如何才能抓住和查看对方的视频文件。小弟先谢了!!!
解决方案 »
- 如何修改combobox右边的的下拉图?
- 关于StringGrid的问题的奇怪问题
- 对于初学者,短期内要编程出一个项目软件,最大的困难是什么?
- 求Delphi安装后的一个报表单元 \delphi7\Rave5\Lib\Report_Public.pas'。急!!!
- fastreport 3.15 中报表如何添加新页?(在线等,答完就结贴)
- treeview\listview中如何设置单小项的字色、字体呢!
- 大虾们,请问如何实现statusbar中的字能够滚动?
- 动态加载SQL语句时TADOQuery检查不出SQL参数?
- 极其郁闷!不学精DELPHI誓不为人!@
- 在windows2000环境中,如何让delphi运行后缀为msi的文件?
- 串口难题,请看看!先给100,不够还有。
- 问题
m_pDDSPrimary,m_pDDSBack:IDIRECTDRAWSURFACE7;
ddsd,ddsd2,ddsdPrimary:TDDSURFACEDESC2;
lpBuffer:PByte; ddsd2.dwSize := sizeof(ddsd2);
ddsd2.dwFlags := DDSD_WIDTH or DDSD_HEIGHT or DDSD_CAPS;
ddsd2.dwWidth := GetSystemMetrics(SM_CXSCREEN);
ddsd2.dwHeight := GetSystemMetrics(SM_CYSCREEN);
ddsd2.ddsCaps.dwCaps := DDSCAPS_SYSTEMMEMORY or DDSCAPS_OFFSCREENPLAIN;
hRet := m_pDirectDraw.CreateSurface(ddsd2,m_pDDSBack,nil);
if (hRet <> DD_OK) then
begin
MessageBox(self.Handle,'创建缓冲页面失败','警告',MB_OK);
exit;
end; lpSrcRect := Rect(0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN));//hRet=AddAttachedSurface(m_pDDSPrimary);// c4 := GetTickCount(); c1 := GetTickCount();
hRet := m_pDDSBack.BltFast(0,0,m_pDDSPrimary,@lpSrcRect,DDBLTFAST_DONOTWAIT);
c3:= GetTickCount();
if (hRet <> DD_OK) then
begin
MessageBox(self.Handle,'复制页面失败','警告',MB_OK);
exit;
end;//lock
ddsdPrimary.dwSize := sizeof(TDDSURFACEDESC2);
//ddsdPrimarydwHeight =
lpRect := Rect(0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN)); hRet := m_pDDSBack.Lock( @lpRect, ddsdPrimary, DDLOCK_WAIT or DDLOCK_NOSYSLOCK, 0 ); lpBuffer := AllocMem(ddsdPrimary.dwHeight*ddsdPrimary.lPitch);
CopyMemory (lpBuffer, ddsdPrimary.lpSurface,ddsdPrimary.dwHeight*ddsdPrimary.lPitch);
//lpbuffer 图像数据
// Unlock
m_pDDSBack.Unlock(nil); c2 := GetTickCount();
if( m_pDDSBack <> nil ) then//判断主页面对象是否为空
begin
// m_pDDSBack._Release(); //释放
m_pDDSBack := nil;
end;