如何在抓屏的时候,连鼠标一起抓下?(100分)

  • 主题发起人 主题发起人 keyz
  • 开始时间 开始时间
K

keyz

Unregistered / Unconfirmed
GUEST, unregistred user!
特别是,如果鼠标是动态的鼠标指针时。最好能够读到屏幕的缓存。
 
能说得详细些吗?
 
我见过一个vb 的程序,原理就是把鼠标指针画到所抓的图上
dim pic as picture,info as iconinfo
set pic=loadResPicture("Normal",vbResCursor) //从资源文件里调如鼠标指针,得到句柄等
GetIconInfo pic.handle,info //得到鼠标指针信息,鼠标所指的点
Picture1.PaintPicture pic,x-info.xHotspot,y-info.yHotspot //画指针到图上
x,y 用GetCursorPos得到
我觉得这个方法不太好,如果是特殊指针,好象抓不到
有谁知道,如何得到当前指针的句柄 (注意不是当前进程的,不是GetCursor得到的)
有谁知道?
 
关于截屏带鼠标,请参考 :
http://www.delphibbs.com/delphibbs/dispq.asp?lid=653445

如果是特殊的鼠标指针,就应该象楼上说的那样,从资源文件加载指针。
 
http://go4.163.com/lovejingtao/
原创技巧10就有答案。
 
我最近也在搞和你一样的软件,和你不一样,我遇到的是DirectX的问题,
你能发一份给我吗?[:)]
Corser@Peoplemail.com.cn
 
非常同意火凤凰,鼠标是后画上去的
给你一段我的代码吧,C++Builder的,应该能看懂

void __fastcall TfrmMainForm::CaptureScreen()
{
Graphics::TBitmap* FullScreen = new Graphics::TBitmap;
TCanvas* FullScreenCanvas = new TCanvas;
HDC DC;

FullScreen->Width = Screen->Width;
FullScreen->Height = Screen->Height;
DC = GetDC(0);
FullScreenCanvas->Handle = DC;
FullScreen->Canvas->CopyRect(Rect(0,0,Screen->Width,Screen->Height), FullScreenCanvas,
Rect(0,0,Screen->Width,Screen->Height));
delete FullScreenCanvas;
ReleaseDC(0, DC);
imgScreen->Width = FullScreen->Width;
imgScreen->Height = FullScreen->Height;
imgScreen->Picture->Bitmap = FullScreen;
delete FullScreen;
Application->Restore();
}
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
816
SUNSTONE的Delphi笔记
S
S
回复
0
查看
739
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部