积极答复者
屏幕自动校准,重复出现,无法正确退出

问题
-
平台: ARM926T
错误现象: 在系统启动后自动进行屏幕校准时,总是重复校准过程.无法退出校准程序进入到wince界面.
说明: 系统启动后的自动校准是通过在windows\startup目录下增加自启动程序去调用TouchCalibrate实现的,自序启动项的程序代码如下:
// TouchCalibrate.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <windows.h>
#include <commctrl.h>typedef BOOL (WINAPI *_TouchCalibrate)();
void callTouchCalibrate()
{HINSTANCE ApiDLL = LoadLibrary(_T("coredll.dll"));
if (ApiDLL == NULL)
{
MessageBox (NULL,L"ApiDLL == NULL",NULL,0);
return;
}_TouchCalibrate TouchCalibrate = NULL;
TouchCalibrate = (_TouchCalibrate)GetProcAddress(ApiDLL, _T("TouchCalibrate"));
if (TouchCalibrate == NULL)
{
MessageBox (NULL,L"TouchCalibrate == NULL",NULL,0);
return;
}
TouchCalibrate ();
}
int _tmain(int argc, _TCHAR* argv[])
{
callTouchCalibrate();
return 0;
}
答案
-
不是MS的原因。是因为你的硬件驱动部分有不可停止的中断产生,(可能是:部分应用程序在切换,USB鼠标或其他输入/输出影响,FLASH操作和程序的烧入都会影响,会出现这样的问题! 这样的情况一般重新把板上的所有程序重新烧入就可以解决问题了!
- 已标记为答案 lotikayanModerator 2009年5月31日 6:30
全部回复
-
不好意思,真正的校准程序我也没去看过,只是我曾碰到过类似的问题而已。我说的校准的时候对准一点,是运行程序的第一次校准,第一次准了就没事,不然后面会要求一直点下去。不知道你有没有校准成功过,如果你成功过,我建议你不用采用校准程序,用我下面的方法一样可以实现:
打开你的机器后,运行校准程序成功后打开注册表,找到:
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\TOUCH]
"DriverName"="touch.dll"
"MaxCalError"=dword:7
"CalibrationData"="2079,2015 693,3299 689,715 3471,729 3467,3255 "//这就是校准后的坐标
你把上面的坐标抄下来,修改到镜像里的注册表,这样你一劳永逸了。如果你觉得你的机子用一段时间还是会屏幕不准,你也可以把上面的注册表值写成程序每次启动时导入进去。 -
不是MS的原因。是因为你的硬件驱动部分有不可停止的中断产生,(可能是:部分应用程序在切换,USB鼠标或其他输入/输出影响,FLASH操作和程序的烧入都会影响,会出现这样的问题! 这样的情况一般重新把板上的所有程序重新烧入就可以解决问题了!
- 已标记为答案 lotikayanModerator 2009年5月31日 6:30