короткий ответ:
tabcal.exe ClearCal DisplayID=\.\DISPLAY1
ответ
вы не найдете официального списка параметров командной строки для tabcal.exe
везде, но я надеюсь, что это кому-то полезно.
Эту информацию вам предоставляет Контролировать Процесс (моя полезная утилита для понимания того, что процесс должен был делать с помощью аргументов командной строки, а также что он делает с другими процессами, файловой системой и реестром) и либеральное использование Погуглить.
вот то, что я думаю, что я понял:
ClearCal
сброс данных калибровки для данного устройства
требует DisplayID
LinCal
выполняется калибровка
(если ClearCal
не указано, функция по умолчанию LinCal
)
требуется DisplayID
если у вас есть более одного устройства с пером и / или сенсорных возможностей
может потребоваться DeviceKind
если вы имеете и цифрователи ручки и касания на одиночном дисплее
DisplayID=\.\DISPLAY1
One-based индекс дисплея связанный с экраном касания
(Если у вас есть два дисплея, это 1 или 2; значение совпадает идентификационный номер мульти-дисплея в пульте управления дисплея)
Quiet
подавляет окна сообщений
Например, если вы делаете LinCal
, ваши изменения будут сохранены, а не быть предложено, если вы хотите сохранить
Например, если у вас есть ошибка с аргументами командной строки, вы не получите сообщение, указывающее это
DeviceKind={touch,pen}
казалось бы, необязательный аргумент ClearCal
и LinCal
указать тип дигитайзер
(Я подозреваю, что это может потребоваться, если у вас есть оба на одном дисплее, но мой дигитайзер поддерживает только прикосновение.)
{validate,novalidate}
необязательный аргумент LinCal
чтобы предотвратить или принять регистрацию калибровочных знаков, которые находятся далеко от перекрестия
Если не указано, используется значение по умолчанию validate
XGridPts=
YGridPts=
необязательные аргументы (если используются оба обязательно)LinCal
, чтобы указать координаты X и Y перекрестия для калибровки.
Значения a список, разделенный запятыми, без пробелов в координатах пикселей, отсчитываемых от нуля
(например, для 1920×1080, значения дисплея X 0-1919 и y 0-1079 приняты; некоторые примеры ниже)
Если не указано, калибровочные точки по умолчанию равны четырем, если не указано иное (значения извлекаются из HKLM:\SYSTEM\CurrentControlSet\Control\TabletPC\LinearityData
)
Export
необязательный аргумент LinCal
экспорт данных калибровки в файл.
Выходной файл находится в директории из которой tabcal
был вызван, названный " caldatan.тхт', где n это с нуля автоинкрементные номером
Содержимое файла-это имя дигитайзера, разрыв строки и та же шестнадцатеричная строка, записанная в значение реестра в HKLM:\SYSTEM\CurrentControlSet\Control\TabletPC\LinearityData
(Я не нашел соответствующей функции импорта.)
другие вещи, которые я узнал
есть три подраздела реестра, которые содержат данные калибровки:
HKLM:\SYSTEM\CurrentControlSet\Control\TabletPC\LinearityData
HKLM:\SYSTEM\CurrentControlSet\Control\TabletPC\UserLinearityData
HKLM:\SYSTEM\CurrentControlSet\Enum\HID\VID_xxxx&&PID_xxxx&Colxx\(non-deterministic)\Device Parameters
первые два могут содержать двоичное значение имени vid_xxxxpid_xxxx&colxx
, содержащий данные калибровки для этого конкретного устройства, а также значения XGridPts и YGridPts, если вы откалиброваны с более чем 4 точек касания.
на Enum\HID
подраздел, имеющий те же значения VID/PID/Col, что и LinearityData
значение будет иметь значение с именем LinearityData
С теми же данными, что и выше.
если вы удалите все эти значения реестра, вам придется сбросить данные калибровки, но изменение не вступит в силу, пока эти данные не будут считаны обратно в систему, либо при последующей загрузке или когда wisptis.exe
пользовательский процесс перезапускается. (Упорядоченный перезапуск планшетного ПК Служба ввода не делает этого, даже если она останавливает и перезапускает wisptis.exe
процессы. Иди разберись.)
гораздо более простой способ сделать это-выполнить следующую команду (которая требует повышения прав), которая немедленно удаляет эти ключи и производит изменение:
tabcal.exe ClearCal DeviceKind=touch DisplayID=\.\DISPLAY1
это точная команда, которая выполняется, когда пользователь выбирает пункт "Сброс..."из Панели управления настройками планшетного ПК на моей тестовой системе. Если у вас есть устройство перьевого ввода или другая конфигурация дисплея, ваша команда может немного отличаться. (Если включен контроль учетных записей, перед разрешением действия сброса можно открыть область сведений, чтобы просмотреть полную командную строку для выполнения. В качестве альтернативы вы можете вытащить эту информацию из Контролировать Процесс.)
как вы уже определили, вы можете повторно откалибровать сенсорный экран, используя производную одной из следующих команд в зависимости от размера вашего дисплея и ваших конкретных требований:
# Default touch calibration (4 points unless someone's previously specified XGridPts/YGridPts)
tabcal.exe lincal novalidate devicekind=touch
tabcal.exe lincal novalidate devicekind=pen
# Example 25-point touch calibration for 1920×1080 display
tabcal.exe lincal novalidate devicekind=touch XGridPts=10,485,960,1435,1910 YGridPts=10,275,540,805,1070
# Example 121-point pen calibration (from a Microsoft Surface forum)
tabcal.exe lincal novalidate devicekind=pen XGridPts=10,60,110,360,660,960,1260,1560,1810,1860,1910 YGridPts=10,60,110,200,330,490,650,810,970,1020,1070