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()
} ;