Я разрабатываю скриш-приложение.Я хотел бы поймать реальный курсор, чтобы нарисовать его на растровом изображении.
У меня есть две реализации: в первом курсор отображается хорошо, но он всегда является курсором по умолчанию;в то время как в последнем случае курсор иногда рисуется хорошо, а иногда он не обновляется и не рисуется хорошо.
Есть ли способ объединить положительные аспекты этой реализации?
Первый:
Point cursorPosition = Cursor.Position;
if (_bitmapRectangle.Contains(cursorPosition))
{
Point relativeCursorPosition = new Point(cursorPosition.X - _bitmapRectangle.Location.X, cursorPosition.Y - _bitmapRectangle.Location.Y);
Cursor.Draw(graphics, new Rectangle(relativeCursorPosition, Cursor.Size));
}
Second:
Point cursorPosition = Cursor.Position;
using (Cursor cursor = Cursor.Current)
{
if (_bitmapRectangle.Contains(cursorPosition))
{
Point relativeCursorPosition = new Point(cursorPosition.X - _bitmapRectangle.Location.X, cursorPosition.Y - _bitmapRectangle.Location.Y);
cursor.Draw(graphics, new Rectangle(relativeCursorPosition, cursor.Size));
}
}
Кажется, что второе решение работает плохо, когда я не использую курсор по умолчанию и когда мышь находится в фоновой форме (и форма скриншота включенапередний план).