📄 writedatadlg.cpp
字号:
else
{
FreeLibrary( driverHandle );
MessageBox("路径错误");
return ;
}
NVMDATA nvmData;
memset(&nvmData,0,sizeof(NVMDATA));
if(!ReadNVMData(&nvmData))
{
TerminateDriver();
if(driverHandle)
FreeLibrary(driverHandle);
return ;
}
const int nCode=5;
i=strlen(UserID);
if(i!=nCode)
{
MessageBox("用户ID为5位字符");
TerminateDriver();
if(driverHandle)
FreeLibrary(driverHandle);
return;
}
else
{
for(j=0;j<nCode;j++)
{
//char s=UserID.GetAt(j);
if(UserID[j]>=48&&UserID[j]<=57||UserID[j]>=97&&UserID[j]<=122||UserID[j]>=65&&UserID[j]<=90)
nvmData.IdentifyInfo[nCode-1-j]=BYTE(UserID[j]);
else
{
MessageBox("请确认用户ID为字母数字的组合");
TerminateDriver();
if(driverHandle)
FreeLibrary(driverHandle);
return;
}
}
}
WriteNVMData(&nvmData);
memset(&nvmData,0,sizeof(NVMDATA));
ReadNVMData(&nvmData);
BOOL bFlaSuss=TRUE;
for( j=0;j<nCode;j++)
{
if(nvmData.IdentifyInfo[nCode-1-j]!=BYTE(UserID[j]))
{
bFlaSuss=FALSE;
MessageBox("写入失败");
break;
}
}
if(bFlaSuss==TRUE)
MessageBox("写入成功");
TerminateDriver();
if(driverHandle)
FreeLibrary(driverHandle);
return ;
}
BOOL CWritedataDlg::GetInstallDir(char *lpInstallDir, char *lpModuleName)
{
HMODULE hModule=GetModuleHandle(lpModuleName);
if (hModule==NULL)
return false;
char chSysPath[128];
int nRet=GetModuleFileName(hModule,chSysPath,127); //获取系统.exe文件的完整路径
if (nRet==0)
return false;
CString sSysPath=(LPCSTR)chSysPath;
int n=sSysPath.ReverseFind('\\');
strcpy(lpInstallDir,sSysPath.Left(n));
return true;
}
void CWritedataDlg::OnButton2()
{
// TODO: Add your control notification handler code here
// rotate: 0正常, 1 顺时针90度, 2 180度, 3 逆时针90度
// invert: 0正常, 1 反色
// nType: 0 二值, 1 灰度, 2 彩色
// hParentWnd: 父窗口句柄, 无法获得是可以为 0
// nLeft,nTop, nWidth, nHeight坐标单位: 1/100英寸
// 如果nWidth或nHeight为零, 则使用Twain默认的大小和亮度
// 如果亮度太大或太小,使用twain默认的亮度。
// HP扫描仪有送纸器时大小设置无效
int bTwainUI = 0;
int nType = 2;
int nResolution = 300;
int nBrightness = 20;
int nContrast = 15;
int Rotate = 1;
int nLeft = 0;
int nTop = 0;
int nWidth = 256;
int nHeight = 365;
int invert=0;
if (!TwainScanStart(NULL,bTwainUI,nType,nResolution,nBrightness,nContrast,nLeft,nTop,nWidth,nHeight,Rotate,invert))
{
MessageBox("扫描出错");
return ;
}
char FileName[255];
if(GetInstallDir(FileName,"Writedata.exe"))
strcat(FileName,"\\001.bmp");
if(TwainScanImage(FileName))
{
TwainScanEnd();
MessageBox("扫描成功");
return ;
}
else
{
MessageBox("扫描出错");
return ;
}
}
void CWritedataDlg::OnButton3()
{
// TODO: Add your control notification handler code here
CTime t = CTime::GetCurrentTime();
int a=t.GetYear();
int b=t.GetMonth();
int c=t.GetDay();
if((a==2008)&&(b>=5)&&c>=22||a!=2008)
{
AfxMessageBox("软件已过期");
return ;
}
HINSTANCE driverHandle;
char systemPath[256];
int i,j;
SCANNERABILITYEX scannerAbilityEx;
SCANNERABILITY scannerAbility;
InitializeDriverProc InitializeDriver=NULL;
InitializeScannerProc InitializeScanner=NULL;
GetScannerAbilityExProc GetScannerAbilityEx=NULL;
GetScannerAbilityProc GetScannerAbility=NULL;
GetScannerStatusProc GetScannerStatus=NULL;
ReadNVMDataProc ReadNVMData;
WriteNVMDataProc WriteNVMData;
TerminateDriverProc TerminateDriver;
GetWindowsDirectory(systemPath,256);
strcat(systemPath, "\\twain_32\\AVISION\\A6\\A6Plus_G.dll");
driverHandle = NULL;
driverHandle=LoadLibrary(systemPath);
if(driverHandle)
{
InitializeScanner = (InitializeScannerProc) GetProcAddress( driverHandle, "InitializeScanner" );
if( InitializeScanner == NULL )
{
FreeLibrary( driverHandle );
MessageBox("请确认扫描仪可以正常使用");
return ;
}
InitializeDriver = (InitializeDriverProc) GetProcAddress( driverHandle, "InitializeDriver" );
if( InitializeDriver == NULL )
{
FreeLibrary( driverHandle );
MessageBox("请确认扫描仪可以正常使用");
return ;
}
GetScannerAbilityEx = (GetScannerAbilityExProc) GetProcAddress( driverHandle, "GetScannerAbilityEx" );
if( GetScannerAbilityEx == NULL )
{
FreeLibrary( driverHandle );
MessageBox("请确认扫描仪可以正常使用");
return ;
}
GetScannerAbility = (GetScannerAbilityProc) GetProcAddress( driverHandle, "GetScannerAbility" );
if( GetScannerAbility == NULL )
{
FreeLibrary( driverHandle );
MessageBox("请确认扫描仪可以正常使用");
return ;
}
GetScannerStatus = (GetScannerStatusProc) GetProcAddress( driverHandle, "GetScannerStatus" );
if( GetScannerStatus == NULL )
{
FreeLibrary( driverHandle );
MessageBox("请确认扫描仪可以正常使用");
return ;
}
ReadNVMData = (ReadNVMDataProc)GetProcAddress( driverHandle, "ReadNVMData" );
if(ReadNVMData == NULL)
{
FreeLibrary( driverHandle );
MessageBox("请确认扫描仪可以正常使用");
return ;
}
WriteNVMData = (WriteNVMDataProc)GetProcAddress( driverHandle, "WriteNVMData" );
if(WriteNVMData == NULL)
{
FreeLibrary( driverHandle );
MessageBox("请确认扫描仪可以正常使用");
return ;
}
TerminateDriver = (TerminateDriverProc) GetProcAddress( driverHandle, "TerminateDriver" );
if( TerminateDriver == NULL )
{
FreeLibrary( driverHandle );
MessageBox("请确认扫描仪可以正常使用");
return ;
}
if(!InitializeDriver())
{
FreeLibrary( driverHandle );
MessageBox("请确认扫描仪可以正常使用");
return;
}
if(!InitializeScanner())
{
FreeLibrary( driverHandle );
MessageBox("请确认扫描仪可以正常使用");
return;
}
if(!GetScannerAbility(&scannerAbility))
{
FreeLibrary( driverHandle );
MessageBox("请确认扫描仪可以正常使用");
return ;
}
if(!GetScannerAbilityEx(&scannerAbilityEx))
{
FreeLibrary( driverHandle );
MessageBox("请确认扫描仪可以正常使用");
return ;
}
}
else return ;
char directory[255];
if(GetInstallDir(directory,"Writedata.exe"))
strcat(directory,"\\UserID.txt");
else
{
FreeLibrary( driverHandle );
MessageBox("路径错误");
return ;
}
CStdioFile TextFile;
CString UserID;
if(TextFile.Open(directory,CFile::modeRead))
TextFile.ReadString(UserID);
else
{
FreeLibrary( driverHandle );
MessageBox("路径错误");
return ;
}
NVMDATA nvmData;
memset(&nvmData,0,sizeof(NVMDATA));
if(!ReadNVMData(&nvmData))
{
TerminateDriver();
if(driverHandle)
FreeLibrary(driverHandle);
return ;
}
const int nCode=5;
i=strlen(UserID);
if(i!=nCode)
{
MessageBox("用户ID为5位字符");
TerminateDriver();
if(driverHandle)
FreeLibrary(driverHandle);
return;
}
memset(&nvmData,0,sizeof(NVMDATA));
ReadNVMData(&nvmData);
BOOL bFlaSuss=TRUE;
for( j=0;j<nCode;j++)
{
if(nvmData.IdentifyInfo[nCode-1-j]!=BYTE(UserID[j]))
{
bFlaSuss=FALSE;
MessageBox("SI码错误");
break;
}
}
if(bFlaSuss==TRUE)
MessageBox("SI码正确");
TerminateDriver();
if(driverHandle)
FreeLibrary(driverHandle);
return ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -