shaileshshinde Ответов: 2

Следуйте за курсором клавиатуры для увеличения


нужно увеличивать экран при перемещении курсора клавиатуры

в настоящее время ниже кода я попробовал для указателя мыши.

требуется увеличение при перемещении курсора клавиатуры

Что я уже пробовал:

Графика g;
Растровое изображение bmp;

частный недействительными timer1_Tick(объект отправителя, EventArgs в электронной)
{
bmp = новое растровое изображение(250, 200);
g = это.CreateGraphics();
г = графикой.FromImage(bmp);

g.CopyFromScreen(положение мыши.Х - 100, Положение Мыши.Y - 10, 0, 0, новый размер(300, 300));
имя picturebox1.Изображение = БМП;
}

2 Ответов

Рейтинг:
2

OriginalGriff

Первое, что следует отметить, - это плохой код: растровые изображения и графические контексты-это ограниченные ресурсы, и вы несете ответственность за их утилизацию, когда закончите с ними. Особенно в случае графических объектов.
Я бы настоятельно рекомендовал вам использовать using блок, если вы собираетесь звонить CreateGraphics:

using (Graphics g = this.CreateGraphics())
   {
   ... use g here ...
   }
... g is automatically discarded here
На самом деле, вы можете ускорить процесс и получить точно такие же результаты без каких-либо растровых изображений:
private void T_Tick(object sender, EventArgs e)
    {
    using (Graphics g = myPictureBox.CreateGraphics())
        {
        g.CopyFromScreen(MousePosition.X - 100, MousePosition.Y - 10, 0, 0, new Size(300, 300));
        }
    }

Но... "курсора клавиатуры" не существует; курсор, который показывает, когда пользователь может печатать, не совпадает с курсором мыши - и самое важное отличие заключается в том, что существует не только один для всей системы, каждый элемент управления пользовательским вводом имеет свою собственную каретку, но на самом деле отображается только сфокусированный.

Поэтому, чтобы узнать, когда он переместился, вам в основном придется подключаться к каждому входному элементу управления в системе, а это чрезвычайно сложно в управляемом языке, таком как C# (потому что у вас нет прямого доступа к ОС)

Я бы предположил, что вам придется потратить много времени на то, чтобы заставить это работать, и даже тогда ... там будут приложения, где ваш код не работает, потому что они не используют "стандартные элементы управления" любой формы. Так что он не обязательно будет надежным...


Рейтинг:
1