Sco*_*ttN 4 windows-7 command-line touchscreen command-line-arguments
如果您有受支持的触摸屏,Windows 7 上有一个实用程序可以让您进行触摸校准。
可执行文件是 tabcal.exe,它位于:
C:\Windows\System32
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种方法将这个 exe 自己从我的信息亭应用程序中外壳到:
exe 支持一些开关,但它们没有记录。一旦切换,我发现是这样的:
tabcal lincal novalidate XGridPts={coords} YGridPts={coords}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有人可以帮助我找到重置校准数据的命令开关,这与转到控制面板并转到平板电脑设置然后单击“重置...”的工作原理相同
tabcal.exe ClearCal DisplayID=\\.\DISPLAY1
Run Code Online (Sandbox Code Playgroud)
您不会在tabcal.exe任何地方找到命令行参数的官方列表,但我希望这对某人有用。此信息由Process Monitor(我的首选实用程序,用于了解通过命令行参数告诉进程执行的操作以及它对其他进程、文件系统和注册表执行的操作)和自由使用谷歌。
这是我相信我已经想出的:
ClearCal
重置给定设备的校准数据
需要 DisplayID
LinCal
运行校准
(如果ClearCal没有指定,缺省功能是LinCal)
要求DisplayID,如果你有一个以上的设备与笔和/或触摸的能力
,可能需要DeviceKind,如果你有在单个显示器上笔和数字化仪触摸
DisplayID=\\.\DISPLAY1
与触摸屏关联的基于一的显示索引
(如果您有两个显示器,则为 1 或 2;值与显示控制面板中的多显示器标识号匹配)
Quiet
禁止消息框
例如,如果您这样做LinCal,您的更改将被保存而不是提示您是否要保存
例如,如果您的命令行参数有错误,您将不会收到指示
DeviceKind={touch,pen}
似乎是可选参数
ClearCal并LinCal指示数字化仪的类型
(我怀疑如果您在同一显示器上同时使用这两个参数,但我的数字化仪仅支持触摸,则可能需要它。)
{validate,novalidate}
LinCal防止或接受远离十字准线的校准标记的注册的可选参数
如果未指定,则默认值为validate
XGridPts=YGridPts=
可选参数(如果同时使用,则两者都需要)来
LinCal指定用于校准的十字准线的 X 和 Y 坐标。
值是逗号分隔的列表,没有从零开始的像素坐标的空格
(例如,对于 1920×1080,接受显示 X 值 0-1919 和 Y 值 0-1079;下面是一些示例)
如果未指定,则校准点除非先前指定,否则默认为四个(从 中检索值HKLM:\SYSTEM\CurrentControlSet\Control\TabletPC\LinearityData)
Export
LinCal将校准数据导出到文件的可选参数。
输出文件位于tabcal被调用的目录中,名为“caldata n .txt”,其中n是从零开始的自动递增数字
文件的内容是数字化仪的名称、换行符和写入到的相同十六进制字符串中的注册表值HKLM:\SYSTEM\CurrentControlSet\Control\TabletPC\LinearityData
(我还没有找到相应的导入功能。)
有三个包含校准数据的注册表子项:
HKLM:\SYSTEM\CurrentControlSet\Control\TabletPC\LinearityDataHKLM:\SYSTEM\CurrentControlSet\Control\TabletPC\UserLinearityDataHKLM:\SYSTEM\CurrentControlSet\Enum\HID\VID_xxxx&&PID_xxxx&Colxx\(non-deterministic)\Device Parameters前两个可能包含一个名为的二进制值,vid_xxxxpid_xxxx&colxx其中包含该特定设备的校准数据以及 XGridPts 和 YGridPts 值(如果您使用 4 个以上的触摸点进行校准)。
Enum\HID在其名称中具有与LinearityData值相同的 VID/PID/Col 值的子项将具有LinearityData与上述相同数据命名的值。
如果您删除所有这些注册表值,您将重置校准数据,但更改不会生效,直到该数据被系统读回,无论是在后续启动时还是在wisptis.exe用户进程重新启动时。(即使 Tablet PC 输入服务停止并重新启动wisptis.exe进程,它也不会有序地重新启动。请看图。)
一个更简单的方法是运行以下命令(需要提升),删除这些键并立即影响更改:
tabcal.exe ClearCal DeviceKind=touch DisplayID=\\.\DISPLAY1
Run Code Online (Sandbox Code Playgroud)
这是当用户从我的测试系统上的 Tablet PC 设置控制面板中选择“重置...”时运行的确切命令。如果您有笔输入设备或不同的显示配置,您的命令可能略有不同。(如果您启用了 UAC,则在允许重置操作之前,您可以打开“详细信息”窗格以查看要执行的完整命令行。或者,您可以从Process Monitor 中提取该信息。)
正如您已经确定的那样,您可以根据显示器的大小和您的特定要求,使用以下命令之一的派生词重新校准触摸屏:
# 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7953 次 |
| 最近记录: |