diff --git a/KeyGenerator.cpp b/KeyGenerator.cpp index ac27999..91b6af3 100644 --- a/KeyGenerator.cpp +++ b/KeyGenerator.cpp @@ -89,14 +89,15 @@ CKeyGeneratorApp::InitInstance( void) return FALSE ; // gestione linea di comando - string sFileToOpen ; - CCommandLineInfo cmdInfo ; - ParseCommandLine( cmdInfo) ; - if ( cmdInfo.m_nShellCommand == CCommandLineInfo::FileOpen) - sFileToOpen = WtoA( cmdInfo.m_strFileName) ; + int nFlag = 0 ; + string sFileToOpen = "" ; + if ( __argc >= 2) + sFileToOpen = WtoA( __wargv[1]) ; + if ( __argc >= 3) + FromString( LPSTR( WtoA( __wargv[2])), nFlag) ; // Dialog interface - CKeyGeneratorDlg dlg( sFileToOpen) ; + CKeyGeneratorDlg dlg( sFileToOpen, nFlag) ; m_pMainWnd = &dlg ; dlg.DoModal() ; diff --git a/KeyGenerator.rc b/KeyGenerator.rc index 61482fe..80da151 100644 Binary files a/KeyGenerator.rc and b/KeyGenerator.rc differ diff --git a/KeyGenerator.vcxproj b/KeyGenerator.vcxproj index ba60e5b..406c83d 100644 --- a/KeyGenerator.vcxproj +++ b/KeyGenerator.vcxproj @@ -14,6 +14,7 @@ {0516D641-6731-48BE-AC94-C9E957D371B6} KeyGenerator MFCProj + 10.0.17763.0 @@ -21,7 +22,7 @@ true Unicode Dynamic - v120 + v120_xp Application @@ -29,7 +30,7 @@ true Unicode Dynamic - v120 + v120_xp diff --git a/KeyGeneratorDlg.cpp b/KeyGeneratorDlg.cpp index f125808..1f71c79 100644 --- a/KeyGeneratorDlg.cpp +++ b/KeyGeneratorDlg.cpp @@ -109,12 +109,13 @@ END_MESSAGE_MAP() //---------------------------------------------------------------------------- // CKeyGeneratorDlg dialog //---------------------------------------------------------------------------- -CKeyGeneratorDlg::CKeyGeneratorDlg( const string& sFileToOpen, CWnd* pParent) +CKeyGeneratorDlg::CKeyGeneratorDlg( const string& sFileToOpen, int nFlag, CWnd* pParent) : CDialogEx( IDD_KEYGENERATOR_DIALOG) { m_hIcon = AfxGetApp()->LoadIcon( IDR_MAINFRAME) ; // eventuale file da caricare all'avvio m_sFileToOpen = sFileToOpen ; + m_nFlag = nFlag ; } //---------------------------------------------------------------------------- @@ -136,15 +137,15 @@ CKeyGeneratorDlg::OnInitDialog( void) // 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); + ASSERT( ( IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX) ; + ASSERT( IDM_ABOUTBOX < 0xF000) ; - CMenu* pSysMenu = GetSystemMenu(FALSE); + CMenu* pSysMenu = GetSystemMenu( FALSE) ; if ( pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); - ASSERT(bNameValid); + ASSERT( bNameValid) ; if ( ! strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu( MF_SEPARATOR) ; pSysMenu->AppendMenu( MF_STRING, IDM_ABOUTBOX, strAboutMenu) ; @@ -158,9 +159,12 @@ CKeyGeneratorDlg::OnInitDialog( void) // eventuale apertura o esecuzione di file all'avvio if ( ! m_sFileToOpen.empty()) { - // leggo il file - if ( LoadFile( m_sFileToOpen.c_str())) + // leggo il file e genero + if ( LoadFile( m_sFileToOpen.c_str())) { + if ( m_nFlag == 1) + PostMessage( WM_COMMAND, IDC_GENER, 0) ; return TRUE ; + } } // Assegno ultimi valori inseriti @@ -419,4 +423,8 @@ CKeyGeneratorDlg::OnGenerate( void) // visualizzo i risultanti CKeyDlg dlgKey( sKey) ; dlgKey.DoModal() ; + + // se lanciato con file, esco dal programma + if ( ! m_sFileToOpen.empty() && m_nFlag == 1) + PostMessage( WM_CLOSE, 0, 0) ; } diff --git a/KeyGeneratorDlg.h b/KeyGeneratorDlg.h index c6cb20d..88c2775 100644 --- a/KeyGeneratorDlg.h +++ b/KeyGeneratorDlg.h @@ -19,7 +19,7 @@ class CKeyGeneratorDlg : public CDialogEx { public : - CKeyGeneratorDlg( const std::string& sFileToOpen, CWnd* pParent = NULL) ; + CKeyGeneratorDlg( const std::string& sFileToOpen, int nFlag, CWnd* pParent = NULL) ; protected: virtual void OnCancel( void) ; @@ -39,6 +39,7 @@ class CKeyGeneratorDlg : public CDialogEx private : HICON m_hIcon ; std::string m_sFileToOpen ; + int m_nFlag ; DECLARE_MESSAGE_MAP() } ;