У меня Surface Pro с поломанной половиной сенсорного экрана. Короче говоря, могу ли я создать виртуальную сенсорную панель, например виртуальную клавиатуру (onboard
), чтобы я мог использовать планшет один?
Резюме
Чтобы ответить на вопрос «есть ли способ», я бы сказал, что мое предположение заключается в том, что да, это теоретически возможно , Но детали того, как это сделать, - вопрос для пользователей более продвинутых, чем я. Я также предполагаю, что решение не будет очень практичным (как в реализации, так и в использовании) и что будет более эффективно ремонтировать / заменять сенсорный экран.
Объяснение
Сказав это, вот почему я говорю, что это возможно.
Одним из свойств устройства является «Матрица преобразования координат», которую вы можете увидеть и изменить с помощью xinput
. Эта матрица сопоставляет физические датчики сенсорного экрана с местоположениями экрана системы отображения. При нормальной работе эта матрица является единичной матрицей , поэтому сопоставление является взаимно-однозначным (т. Е. При касании экрана происходит регистрация действия на дисплее). Эта матрица используется, например, при повороте экрана: вместе с вращающимся выводом на дисплей матрица изменяется на соответствующую матрицу вращения, так что вывод на дисплей по-прежнему совпадает с тем, где вы физически касаетесь экрана.
Это означает, что вы также должны иметь возможность определить более общую матрицу преобразования, которая отображает небольшую прямоугольную область на физическом экране на весь экран.
Таким образом, должна быть возможность написать программу в вашем графическом интерфейсе, которая открывает маленькое прямоугольное окно (оно всегда сверху, поэтому оно не исчезнет, когда вы щелкаете где-то еще) и в то же время запускается xinput
соответственно обновить матрицу преобразования координат, чтобы она отображала сенсоры сенсорного экрана в этой прямоугольной области на весь вывод изображения.
Я не очень разбираюсь в программировании GUI, так что это не тривиально для меня, но может отличаться для вас. Другая часть, в которой ваша программа рассчитывает правильную матрицу, включает некоторую базовую линейную алгебру. Таким образом, вы можете судить, насколько легко вам реализовать решение.
Кстати, я говорил о реализации этого решения самостоятельно, потому что ваша проблема настолько специализирована, что я не могу представить, что там есть готовые инструменты; но я могу ошибаться!
Чтобы пойти еще дальше, даже если вы получили что-то, как я описал выше, я вижу две практические проблемы:
В заключение: отремонтируйте / замените сенсорный экран!