⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 writedatadlg.cpp

📁 向字符串中写数据
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	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 + -