📄 touchreg.c
字号:
#include "TouchReg.h"
#define REG_STR_LEN_MAX 0x40 // can be enlarge
int
TouchPanelRegSave(void)
{
HANDLE hevActivity = NULL;
DWORD dwStatus;
HKEY hk;
dwStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"HARDWARE\\DEVICEMAP\\TOUCH", 0, 0, &hk);
if(dwStatus == ERROR_SUCCESS)
{
unsigned char buf[0x20 + 2*REG_STR_LEN_MAX];
WCHAR szRegHead[0xE];
WCHAR szCalibPoint[REG_STR_LEN_MAX];
DWORD dwSize = sizeof(szCalibPoint);
DWORD dwType;
dwStatus = RegQueryValueEx(hk, L"CalibrationData", NULL, &dwType, (LPBYTE) szCalibPoint, &dwSize);
szCalibPoint[REG_STR_LEN_MAX - 1] = 0; // enforce null termination
RETAILMSG(1, (_T("####0x%x, 0x%x\r\n"), dwType, dwSize));
wcscpy(szRegHead, L"TouchRegSaved.");
memcpy(buf, (unsigned char *)szRegHead, 2*0xE);
memcpy(buf+2*0xE, (unsigned char *)(&dwSize), 2);
memcpy(buf+2*0xF, (unsigned char *)(&dwType), 2);
memcpy(buf+2*0x10, (unsigned char *)szCalibPoint, 2*REG_STR_LEN_MAX);
FLA_Write(0, buf, sizeof(buf));
RegCloseKey(hk);
return 1;
}
else
return 0;
}
int
TouchPanelRegLoad(void)
{
HANDLE hevActivity = NULL;
DWORD dwStatus;
HKEY hk;
dwStatus = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"HARDWARE\\DEVICEMAP\\TOUCH", 0, 0, &hk);
if(dwStatus == ERROR_SUCCESS)
{
unsigned char buf[0x20 + 2*REG_STR_LEN_MAX];
WCHAR szRegHead[0xE];
WCHAR szCalibPoint[REG_STR_LEN_MAX];
DWORD dwSize = 0;
DWORD dwType = 0;
FLA_Read(0, buf, sizeof(buf));
memcpy((unsigned char *)szRegHead, buf, 2*0xE);
memcpy((unsigned char *)(&dwSize), buf+2*0xE, 2);
memcpy((unsigned char *)(&dwType), buf+2*0xF, 2);
memcpy((unsigned char *)szCalibPoint, buf+2*0x10, 2*REG_STR_LEN_MAX);
szRegHead[0xE-1] = 0;
if (wcscmp(szRegHead, L"TouchRegSaved") == 0)
{
dwStatus = RegSetValueEx(hk, L"CalibrationData", 0, dwType, (LPBYTE) szCalibPoint, dwSize);
}
else
{
RETAILMSG(1, (_T("Warning: Cant find reg data from storage device!\r\n")));
return 0;
}
RegCloseKey(hk);
return 1;
}
else
return 0;
}
int
TouchPanelRegShow(void)
{
// DWORD i;
WCHAR testbuf[0x10+REG_STR_LEN_MAX];
FLA_Read(0, (unsigned char *)testbuf, sizeof(testbuf));
RETAILMSG(1, (_T("Show: %s\r\n"), testbuf));
// for (i=0; i<0x10+REG_STR_LEN_MAX; i++)
// RETAILMSG(1, (_T("@@ 0x%x\r\n"), testbuf[i]));
return 1;
}
int
TouchPanelRegSet(void)
{
// DWORD i;
WCHAR testbuf[0x10+REG_STR_LEN_MAX];
wcscpy(testbuf, L"TouchRegSaved.");
*((unsigned short *)testbuf + 0xE) = 0x48;
*((unsigned short *)testbuf + 0xF) = 0x01;
wcscpy((testbuf+0x10), L"65,60 20,20 20,100 110,100 110,20");
RETAILMSG(1, (_T("Set : %s\r\n"), testbuf));
FLA_Write(0, (unsigned char *)testbuf, sizeof(testbuf));
return 1;
}
int
TouchPanelRegInit(void)
{
FLA_Init();
return 1;
}
int
TouchPanelRegDeinit(void)
{
FLA_Deinit();
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -