입력 = int, int
출력 = Bitmap
using System.Runtime.InteropServices;
private Bitmap CaptureCursor(ref int x, ref int y)
{
Bitmap bmp;
IntPtr hicon;
Win32Stuff.CURSORINFO ci = new Win32Stuff.CURSORINFO();
Win32Stuff.ICONINFO icInfo;
ci.cbSize = Marshal.SizeOf(ci);
if (Win32Stuff.GetCursorInfo(out ci))
{
if (ci.flags == Win32Stuff.CURSOR_SHOWING)
{
hicon = Win32Stuff.CopyIcon(ci.hCursor);
if (Win32Stuff.GetIconInfo(hicon, out icInfo))
{
x = ci.ptScreenPos.x - ((int)icInfo.xHotspot);
y = ci.ptScreenPos.y - ((int)icInfo.yHotspot);
Icon ic = Icon.FromHandle(hicon);
bmp = ic.ToBitmap();
return bmp;
}
}
}
return null;
}
캡쳐된 화면에 그리는법
// 마우스 커서 캡쳐
int iCurX = 0;
int iCurY = 0;
Bitmap Cur = CaptureCursor(ref iCurX, ref iCurY);
Rectangle curRec = new Rectangle(iCurX, iCurY, Cur.Width, Cur.Height); // 마우스넣을 사각형
g.DrawImage(Cur, curRec); // 캡쳐한 화면(g)에 마우스 그려넣기
댓글 없음:
댓글 쓰기