KeyGenerator 1.5i2 :
- primo rilascio.
This commit is contained in:
@@ -0,0 +1,333 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2013-2014
|
||||
//----------------------------------------------------------------------------
|
||||
// File : KeyGeneratorDlg.cpp Data : 11.09.14 Versione : 1.5i2
|
||||
// Contenuto : Implementazione della classe dialogo generatore chiavi.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Modifiche : 11.09.14 DS Creazione modulo.
|
||||
//
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
//--------------------------- Include ----------------------------------------
|
||||
#include "stdafx.h"
|
||||
#include "afxdialogex.h"
|
||||
#include "resource.h"
|
||||
#include "KeyGenerator.h"
|
||||
#include "KeyGeneratorDlg.h"
|
||||
#include "KeyMaker.h"
|
||||
#include "/EgtDev/Include/EGnStringUtils.h"
|
||||
#include "/EgtDev/Include/EGnStringConverter.h"
|
||||
#include "/EgtDev/Include/EgtIniFile.h"
|
||||
|
||||
using namespace std ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// CAboutDlg dialog used for App About
|
||||
//----------------------------------------------------------------------------
|
||||
class CAboutDlg : public CDialogEx
|
||||
{
|
||||
public :
|
||||
CAboutDlg( void) ;
|
||||
|
||||
protected :
|
||||
BOOL OnInitDialog( void) ;
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
} ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
CAboutDlg::CAboutDlg( void)
|
||||
: CDialogEx( IDD_ABOUTBOX)
|
||||
{
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
BOOL
|
||||
CAboutDlg::OnInitDialog( void)
|
||||
{
|
||||
CDialog::OnInitDialog() ;
|
||||
|
||||
GetDlgItem( IDC_EXEVER)->SetWindowText( stringtoW( GetExeNameVer())) ;
|
||||
|
||||
return TRUE ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
BEGIN_MESSAGE_MAP( CAboutDlg, CDialogEx)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// CKeyDlg dialog used for Key visualization
|
||||
//----------------------------------------------------------------------------
|
||||
class CKeyDlg : public CDialogEx
|
||||
{
|
||||
public :
|
||||
CKeyDlg( const string& sKey) ;
|
||||
|
||||
protected :
|
||||
BOOL OnInitDialog( void) ;
|
||||
|
||||
private :
|
||||
string m_sKey ;
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
} ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
CKeyDlg::CKeyDlg( const string& sKey)
|
||||
: CDialogEx( IDD_KEYBOX)
|
||||
{
|
||||
m_sKey = sKey ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
BOOL
|
||||
CKeyDlg::OnInitDialog( void)
|
||||
{
|
||||
CDialog::OnInitDialog() ;
|
||||
|
||||
GetDlgItem( IDC_KEY)->SetWindowText( stringtoW( m_sKey)) ;
|
||||
|
||||
return TRUE ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
BEGIN_MESSAGE_MAP( CKeyDlg, CDialogEx)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// CKeyGeneratorDlg dialog
|
||||
//----------------------------------------------------------------------------
|
||||
CKeyGeneratorDlg::CKeyGeneratorDlg( CWnd* pParent)
|
||||
: CDialogEx( IDD_KEYGENERATOR_DIALOG)
|
||||
{
|
||||
m_hIcon = AfxGetApp()->LoadIcon( IDR_MAINFRAME) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
BEGIN_MESSAGE_MAP( CKeyGeneratorDlg, CDialogEx)
|
||||
ON_WM_SYSCOMMAND()
|
||||
ON_WM_PAINT()
|
||||
ON_WM_QUERYDRAGICON()
|
||||
ON_BN_CLICKED( ID_GENER, OnGenerate)
|
||||
ON_WM_CLOSE()
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
BOOL
|
||||
CKeyGeneratorDlg::OnInitDialog( void)
|
||||
{
|
||||
CDialogEx::OnInitDialog() ;
|
||||
|
||||
// Add "About..." menu item to system menu.
|
||||
|
||||
// IDM_ABOUTBOX must be in the system command range.
|
||||
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
|
||||
ASSERT(IDM_ABOUTBOX < 0xF000);
|
||||
|
||||
CMenu* pSysMenu = GetSystemMenu(FALSE);
|
||||
if ( pSysMenu != NULL) {
|
||||
BOOL bNameValid;
|
||||
CString strAboutMenu;
|
||||
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
|
||||
ASSERT(bNameValid);
|
||||
if ( ! strAboutMenu.IsEmpty()) {
|
||||
pSysMenu->AppendMenu( MF_SEPARATOR) ;
|
||||
pSysMenu->AppendMenu( MF_STRING, IDM_ABOUTBOX, strAboutMenu) ;
|
||||
}
|
||||
}
|
||||
|
||||
// Set the icon for this dialog. The framework does this automatically
|
||||
// when the application's main window is not a dialog
|
||||
SetIcon( m_hIcon, TRUE) ; // Set big icon
|
||||
SetIcon( m_hIcon, FALSE) ; // Set small icon
|
||||
|
||||
// Assegno ultimi valori inseriti
|
||||
string sCust = GetPrivateProfileStringUtf8( "Data", "Customer", "", AfxGetApp()->m_pszProfileName) ;
|
||||
GetDlgItem( IDC_CUSTOMER)->SetWindowTextW( stringtoW( sCust)) ;
|
||||
string sMachId = GetPrivateProfileStringUtf8( "Data", "MachineId", "", AfxGetApp()->m_pszProfileName) ;
|
||||
GetDlgItem( IDC_MACHID)->SetWindowTextW( stringtoW( sMachId)) ;
|
||||
int nSelProd = GetPrivateProfileInt( "Data", "SelProduct", 0, AfxGetApp()->m_pszProfileName) ;
|
||||
((CComboBox*)GetDlgItem( IDC_PROD))->SetCurSel( nSelProd) ;
|
||||
int nSelVer = GetPrivateProfileInt( "Data", "SelVer", 0, AfxGetApp()->m_pszProfileName) ;
|
||||
((CComboBox*)GetDlgItem( IDC_VER))->SetCurSel( nSelVer) ;
|
||||
int nSelLev = GetPrivateProfileInt( "Data", "SelLev", 0, AfxGetApp()->m_pszProfileName) ;
|
||||
((CComboBox*)GetDlgItem( IDC_LEV))->SetCurSel( nSelLev) ;
|
||||
int nExpTime = GetPrivateProfileInt( "Data", "ExpTime", 0, AfxGetApp()->m_pszProfileName) ;
|
||||
if ( nExpTime != 0)
|
||||
((CDateTimeCtrl*)GetDlgItem( IDC_EXPIRATION))->SetTime( &CTime( nExpTime)) ;
|
||||
|
||||
return TRUE ; // return TRUE unless you set the focus to a control
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void
|
||||
CKeyGeneratorDlg::OnSysCommand( UINT nID, LPARAM lParam)
|
||||
{
|
||||
if ( ( nID & 0xFFF0) == IDM_ABOUTBOX) {
|
||||
CAboutDlg dlgAbout ;
|
||||
dlgAbout.DoModal() ;
|
||||
}
|
||||
else {
|
||||
CDialogEx::OnSysCommand( nID, lParam) ;
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void
|
||||
CKeyGeneratorDlg::OnPaint( void)
|
||||
{
|
||||
if ( IsIconic()) {
|
||||
CPaintDC dc( this) ; // device context for painting
|
||||
|
||||
SendMessage( WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0) ;
|
||||
|
||||
// Center icon in client rectangle
|
||||
int cxIcon = GetSystemMetrics( SM_CXICON) ;
|
||||
int cyIcon = GetSystemMetrics( SM_CYICON) ;
|
||||
CRect rect ;
|
||||
GetClientRect( &rect) ;
|
||||
int x = ( rect.Width() - cxIcon + 1) / 2 ;
|
||||
int y = ( rect.Height() - cyIcon + 1) / 2 ;
|
||||
|
||||
// Draw the icon
|
||||
dc.DrawIcon( x, y, m_hIcon) ;
|
||||
}
|
||||
else {
|
||||
CDialogEx::OnPaint() ;
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
HCURSOR
|
||||
CKeyGeneratorDlg::OnQueryDragIcon( void)
|
||||
{
|
||||
return static_cast<HCURSOR>( m_hIcon) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void
|
||||
CKeyGeneratorDlg::OnCancel( void)
|
||||
{
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void
|
||||
CKeyGeneratorDlg::OnClose( void)
|
||||
{
|
||||
EndDialog( IDCANCEL) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void
|
||||
CKeyGeneratorDlg::OnGenerate( void)
|
||||
{
|
||||
KeyMaker mKey ;
|
||||
CStringW wszTemp ;
|
||||
|
||||
// recupero il cliente
|
||||
GetDlgItem( IDC_CUSTOMER)->GetWindowTextW( wszTemp) ;
|
||||
string sCust = wstrztoA( wszTemp) ;
|
||||
if ( ! mKey.SetCustomer( sCust)) {
|
||||
AfxMessageBox( L"Dati cliente vuoto o con caratteri vietati (\\/:*?\"<>|)") ;
|
||||
return ;
|
||||
}
|
||||
WritePrivateProfileStringUtf8( "Data", "Customer", sCust.c_str(), AfxGetApp()->m_pszProfileName) ;
|
||||
// recupero l'identificativo macchina (tipo 2)
|
||||
GetDlgItem( IDC_MACHID)->GetWindowTextW( wszTemp) ;
|
||||
string sMachId = wstrztoA( wszTemp) ;
|
||||
if ( ! mKey.SetMachineId( sMachId)) {
|
||||
AfxMessageBox( L"Id Macchina vuoto o errato") ;
|
||||
return ;
|
||||
}
|
||||
WritePrivateProfileStringUtf8( "Data", "MachineId", sMachId.c_str(), AfxGetApp()->m_pszProfileName) ;
|
||||
// recupero il prodotto
|
||||
GetDlgItem( IDC_PROD)->GetWindowTextW( wszTemp) ;
|
||||
string sProd = wstrztoA( wszTemp) ;
|
||||
if ( ! mKey.SetProduct( sProd)) {
|
||||
AfxMessageBox( L"Prodotto vuoto o errato") ;
|
||||
return ;
|
||||
}
|
||||
int nSelProd = ((CComboBox*)GetDlgItem( IDC_PROD))->GetCurSel() ;
|
||||
nSelProd = max( nSelProd, 0) ;
|
||||
WritePrivateProfileInt( "Data", "SelProduct", nSelProd, AfxGetApp()->m_pszProfileName) ;
|
||||
// recupero la versione
|
||||
GetDlgItem( IDC_VER)->GetWindowTextW( wszTemp) ;
|
||||
string sVer = wstrztoA( wszTemp) ;
|
||||
if ( ! mKey.SetVersion( sVer)) {
|
||||
AfxMessageBox( L"Versione vuota o errata") ;
|
||||
return ;
|
||||
}
|
||||
int nSelVer = ((CComboBox*)GetDlgItem( IDC_VER))->GetCurSel() ;
|
||||
nSelVer = max( nSelVer, 0) ;
|
||||
WritePrivateProfileInt( "Data", "SelVer", nSelVer, AfxGetApp()->m_pszProfileName) ;
|
||||
// recupero il livello
|
||||
GetDlgItem( IDC_LEV)->GetWindowTextW( wszTemp) ;
|
||||
string sLev = wstrztoA( wszTemp) ;
|
||||
if ( ! mKey.SetLevel( sLev)) {
|
||||
AfxMessageBox( L"Livello vuoto o errato") ;
|
||||
return ;
|
||||
}
|
||||
int nSelLev = ((CComboBox*)GetDlgItem( IDC_LEV))->GetCurSel() ;
|
||||
nSelLev = max( nSelLev, 0) ;
|
||||
WritePrivateProfileInt( "Data", "SelLev", nSelLev, AfxGetApp()->m_pszProfileName) ;
|
||||
// recupero la data di scadenza
|
||||
int nDays ;
|
||||
CTime tTime ;
|
||||
if ( ((CDateTimeCtrl*)GetDlgItem( IDC_EXPIRATION))->GetTime( tTime) == GDT_VALID)
|
||||
nDays = int( tTime.GetTime() / ( 24 * 3600)) ;
|
||||
else
|
||||
nDays = - 1 ;
|
||||
if ( ! mKey.SetExpirDays( nDays)) {
|
||||
AfxMessageBox( L"Inserisci una Data valida") ;
|
||||
return ;
|
||||
}
|
||||
WritePrivateProfileInt( "Data", "ExpTime", int( tTime.GetTime()), AfxGetApp()->m_pszProfileName) ;
|
||||
// recupero le opzioni
|
||||
unsigned int nOpt1 = 0 ;
|
||||
for ( int i = IDC_CHECK01, j = 0 ; i <= IDC_CHECK16 ; ++ i, ++ j) {
|
||||
if ( ((CButton*)GetDlgItem( i))->GetCheck() == BST_CHECKED)
|
||||
nOpt1 += ( 1 << j) ;
|
||||
}
|
||||
unsigned int nOpt2 = 0 ;
|
||||
if ( ! mKey.SetOptions( nOpt1, nOpt2)) {
|
||||
AfxMessageBox( L"Inserisci Opzioni valide") ;
|
||||
return ;
|
||||
}
|
||||
// recupero la data di scadenza delle opzioni
|
||||
int nOptDays ;
|
||||
CTime tOptTime ;
|
||||
if ( ((CDateTimeCtrl*)GetDlgItem( IDC_OPT_EXPIR))->GetTime( tOptTime) == GDT_VALID)
|
||||
nOptDays = int( tOptTime.GetTime() / ( 24 * 3600)) ;
|
||||
else
|
||||
nOptDays = - 1 ;
|
||||
if ( ! mKey.SetOptExpirDays( nOptDays)) {
|
||||
AfxMessageBox( L"Inserisci una Data valida per le opzioni") ;
|
||||
return ;
|
||||
}
|
||||
// calcolo la chiave
|
||||
if ( ! mKey.CalcKey()) {
|
||||
AfxMessageBox( L"Errore nel calcolo della chiave") ;
|
||||
return ;
|
||||
}
|
||||
string sKey ;
|
||||
mKey.GetKey( sKey) ;
|
||||
|
||||
// salvo i dati
|
||||
if ( ! mKey.SaveData())
|
||||
AfxMessageBox( L"Errore nel salvataggio dei dati") ;
|
||||
|
||||
// visualizzo i risultanti
|
||||
CKeyDlg dlgKey( sKey) ;
|
||||
dlgKey.DoModal() ;
|
||||
}
|
||||
Reference in New Issue
Block a user