?? 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 + -