From f81a2f7e8e9867367ad96629cd38c967c2432c08 Mon Sep 17 00:00:00 2001 From: luca Date: Mon, 3 Dec 2007 14:22:50 +0000 Subject: [PATCH] Patch level : Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/trunk@15829 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- setup/Setup.cpp | 1 + setup/utils.cpp | 8 +++ setup/utils.h | 1 + setup/wizard.cpp | 132 ++++++++++++++++++++++++++++++++++------------- 4 files changed, 106 insertions(+), 36 deletions(-) diff --git a/setup/Setup.cpp b/setup/Setup.cpp index 50bfce262..dec518d43 100755 --- a/setup/Setup.cpp +++ b/setup/Setup.cpp @@ -747,6 +747,7 @@ void CampoSetup::InternetUpdate() //-------------------------------------------------------------------------- void CampoSetup::NormalSetup() { + //creazione del CampoWizard, ovvero dell'insieme di finestre per gestire installazione/aggiornamento m_pWizard = new CampoWizard(m_pMainFrame); if (m_pWizard->Run()) diff --git a/setup/utils.cpp b/setup/utils.cpp index 995e9f127..a9045cb89 100755 --- a/setup/utils.cpp +++ b/setup/utils.cpp @@ -7,6 +7,14 @@ #endif +//metodo per farsi ritornare l'ID di sessione e quindi sapere se si e' in modalita' termserv (win2000,win2003,win2008) +int GetSessionId() +{ + DWORD session = 0; + ::ProcessIdToSessionId(GetCurrentProcessId(), &session); + return (int) session; +} + wxString GetWindowsProgramDirectory() { //scelta della directory di installazione di default diff --git a/setup/utils.h b/setup/utils.h index a0a0df615..24556076d 100755 --- a/setup/utils.h +++ b/setup/utils.h @@ -52,5 +52,6 @@ void CheckAndMakeDir(const wxString& strDir, const wxString& strMsg); bool UnzipFile(const char* strZipFile, const char* strDestdir); wxString GetWindowsProgramDirectory(); +int GetSessionId(); #endif \ No newline at end of file diff --git a/setup/wizard.cpp b/setup/wizard.cpp index a77ae1ba4..4394ee596 100755 --- a/setup/wizard.cpp +++ b/setup/wizard.cpp @@ -738,29 +738,54 @@ public: bool CampoWizardPage5::ForwardValidate() { // controlla il tipo di installazione! - const int nType = m_pRadioBox->GetSelection() + 1; + const int nSessionId = GetSessionId(); + int nType = 1; + //nessun SessionId -> installazione comune -> selection dal radiobutton + if (nSessionId == 0) + nType = m_pRadioBox->GetSelection() + 1; + else //SessionId != 0 -> Terminal Server -> installazione di tipo Server obbligata!!! + nType = 2; + GetWizard().SetInstallationType((InstallationType)nType); return true; } CampoWizardPage5::CampoWizardPage5(wxWizard* parent) : CampoWizardPage(parent) { + //chiede al sistema se e' in modalita' termserv (win2003/2008srv) + const int nSessionId = GetSessionId(); //Istruzioni per l'uso! wxString strTitle = wxT("Scelta del tipo di installazione"); - wxString strBody = wxT("

Standard (scelta consigliata). Installazione su postazione singola, con programmi e dati sul disco locale del computer

"); - strBody += wxT("

Installazioni di rete (per utenti esperti)

"); - strBody += wxT("

Server: Computer in rete sul quale sono presenti una copia, utilizzata o meno, dei programmi (server programmi) e l’area dati (server dati). "); - strBody += wxT("In una installazione in rete di APPNAME e' necessario sia presente un unica postazione di tipo server, "); - strBody += wxT("e deve essere installata per prima!

"); - strBody += wxT("

Client: Computer in rete sul quale e' presente una copia dei programmi ma non l'area dati. "); - strBody += wxT("I client possono essere installati solo dopo l'installazione del server!

"); + wxString strBody; + if (nSessionId == 0) + { + strBody = wxT("

Standard (scelta consigliata). Installazione su postazione singola, con programmi e dati sul disco locale del computer

"); + strBody += wxT("

Installazioni di rete (per utenti esperti)

"); + strBody += wxT("

Server: Computer in rete sul quale sono presenti una copia, utilizzata o meno, dei programmi (server programmi) e l’area dati (server dati). "); + strBody += wxT("In una installazione in rete di APPNAME e' necessario sia presente un unica postazione di tipo server, "); + strBody += wxT("e deve essere installata per prima!

"); + strBody += wxT("

Client: Computer in rete sul quale e' presente una copia dei programmi ma non l'area dati. "); + strBody += wxT("I client possono essere installati solo dopo l'installazione del server!

"); + } + else + { + strBody += wxT("

Terminal Server: Computer con sistema operativo tipo Windows 2003/2008 Server. "); + strBody += wxT("L'installazione e' unica e viene utilizzata dagli utenti di sistema quando aprono una sessione sul server.

"); + strBody += wxT("

Selezionando configurazione Terminal Server e' necessario installare il gestore delle autorizzazioni per "); + strBody += wxT("poter gestire l'accesso contemporaneo di piu' utenti.

"); + } SetHTMLText(strTitle, strBody); //radiobutton con i tipi di installazione wxArrayString asInstType; - asInstType.Add("Standard"); - asInstType.Add("Server"); - asInstType.Add("Client"); + if (nSessionId == 0) + { + asInstType.Add("Standard"); + asInstType.Add("Server"); + asInstType.Add("Client"); + } + else + asInstType.Add("Terminal Server"); m_pRadioBox = new wxRadioBox(this, 501, "Selezionare il tipo di installazione", wxDefaultPosition, wxDefaultSize, asInstType, 0, wxRA_SPECIFY_ROWS); @@ -978,21 +1003,43 @@ bool CampoWizardPage7::ForwardValidate() CampoWizardPage7::CampoWizardPage7(wxWizard* parent) : CampoWizardPage(parent) { - wxString strTitle = wxT("Installazione di tipo Server"); - wxString strBody = wxT("

Digitare nel campo 'Cartella programma' il percorso completo della cartella dove si desidera installare il programma. "); - strBody += wxT("Il percorso consigliato e' C:\\APPNAME

"); - strBody += wxT("

Digitare nel campo 'Cartella dati' il percorso completo della cartella dove si desidera installare l'area dati. "); - strBody += wxT("Il percorso consigliato e' C:\\APPNAME\\dati

"); - strBody += wxT("

Le cartelle del programma e dei dati dovranno essere condivise in modalita' lettura/scrittura agli utenti di sistema e di rete che utilizzeranno il software APPNAME. "); - strBody += wxT("In mancanza di tale condivisione nessun client potra' accedere al server!

"); - strBody += wxT("

Gestore autorizzazioni: e' il software che permette di gestire una chiave di protezione hardware multiutenza condivisa in rete. "); - strBody += wxT("Installando tale software e' necessario specificare il computer su cui e' montata la chiave di protezione multiutenza."); - strBody += wxT("Viene di default proposto il computer su cui si sta eseguendo l'installazione di APPNAME (localhost).

"); - strBody += wxT("

Gestore dizionari: e' il software che permette di utilizzare APPNAME in lingue diverse dall'italiano. "); - strBody += wxT("Per l'installazione di questo software viene di default proposto il computer su cui si sta eseguendo l'installazione di APPNAME (localhost).

"); - strBody += wxT("

Modalita' di esecuzione programmi di gestione
"); - strBody += wxT("Come servizi: i programmi di gestione vengono eseguiti come servizi di Windows; questa e' la modalita' consigliata ed e' obbligatoria in caso di installazione con Windows 2003
"); - strBody += wxT("Nel menu esecuzione automatica: i programmi di gestione vengono eseguiti automaticamente al primo accesso di un utente al server di APPNAME; usare questa modalita' solo nell'impossibilita' di utilizzare la precedente

"); + const int nSessionId = GetSessionId(); + wxString strTitle; + wxString strBody; + + if (nSessionId == 0) + { + strTitle = wxT("Installazione di tipo Server"); + strBody = wxT("

Digitare nel campo 'Cartella programma' il percorso completo della cartella dove si desidera installare il programma. "); + strBody += wxT("Il percorso consigliato e' C:\\APPNAME

"); + strBody += wxT("

Digitare nel campo 'Cartella dati' il percorso completo della cartella dove si desidera installare l'area dati. "); + strBody += wxT("Il percorso consigliato e' C:\\APPNAME\\dati

"); + strBody += wxT("

Le cartelle del programma e dei dati dovranno essere condivise in modalita' lettura/scrittura agli utenti di sistema e di rete che utilizzeranno il software APPNAME. "); + strBody += wxT("In mancanza di tale condivisione nessun client potra' accedere al server!

"); + strBody += wxT("

Gestore autorizzazioni: e' il software che permette di gestire una chiave di protezione hardware multiutenza condivisa in rete. "); + strBody += wxT("Installando tale software e' necessario specificare il computer su cui e' montata la chiave di protezione multiutenza."); + strBody += wxT("Viene di default proposto il computer su cui si sta eseguendo l'installazione di APPNAME (localhost).

"); + strBody += wxT("

Gestore dizionari: e' il software che permette di utilizzare APPNAME in lingue diverse dall'italiano. "); + strBody += wxT("Per l'installazione di questo software viene di default proposto il computer su cui si sta eseguendo l'installazione di APPNAME (localhost).

"); + strBody += wxT("

Modalita' di esecuzione programmi di gestione
"); + strBody += wxT("Come servizi: i programmi di gestione vengono eseguiti come servizi di Windows; questa e' la modalita' consigliata ed e' obbligatoria in caso di installazione con Windows 2003/2008
"); + strBody += wxT("Nel menu esecuzione automatica: i programmi di gestione vengono eseguiti automaticamente al primo accesso di un utente al server di APPNAME; usare questa modalita' solo nell'impossibilita' di utilizzare la precedente

"); + } + else + { + strTitle = wxT("Installazione di tipo Terminal Server"); + strBody = wxT("

Digitare nel campo 'Cartella programma' il percorso completo della cartella dove si desidera installare il programma. "); + strBody += wxT("Il percorso consigliato e' C:\\APPNAME

"); + strBody += wxT("

Digitare nel campo 'Cartella dati' il percorso completo della cartella dove si desidera installare l'area dati. "); + strBody += wxT("Il percorso consigliato e' C:\\APPNAME\\dati

"); + strBody += wxT("

Le cartelle del programma e dei dati dovranno essere accessibili in modalita' lettura/scrittura agli utenti di sistema e di rete che utilizzeranno il software APPNAME. "); + strBody += wxT("In mancanza di tale modalita' nessun utente potra' utilizzare il software APPNAME !

"); + strBody += wxT("

Gestore autorizzazioni: e' il software che permette di gestire una chiave di protezione hardware multiutenza condivisa in rete. "); + strBody += wxT("E' necessario installare questo software specificando localhost come computer su cui e' montata la chiave di protezione multiutenza.

"); + strBody += wxT("

Gestore dizionari: e' il software che permette di utilizzare APPNAME in lingue diverse dall'italiano. "); + strBody += wxT("E' necessario installare questo software specificando localhost come computer su cui installare il servizio.

"); + strBody += wxT("

Modalita' di esecuzione programmi di gestione: obbligatorio come servizi!
"); + } SetHTMLText(strTitle, strBody); @@ -1027,7 +1074,12 @@ CampoWizardPage7::CampoWizardPage7(wxWizard* parent) : CampoWizardPage(parent) //terza riga della griglia //check installa authoriz wxCheckBox* chAuthoriz = new wxCheckBox(this, 705, wxT("Installa il gestore delle autorizzazioni")); - chAuthoriz->SetValue(false); + //e' obbligatorio installare authoriz in caso di terminal server! + if (nSessionId == 0) + chAuthoriz->SetValue(false); + else + chAuthoriz->SetValue(true); + gbsSizer->Add(chAuthoriz, wxGBPosition(2, 1)); //server authoriz wxTextCtrl* tcAuthoriz = new wxTextCtrl(this, 706, "localhost", wxDefaultPosition, wxSize(96,-1)); @@ -1046,12 +1098,17 @@ CampoWizardPage7::CampoWizardPage7(wxWizard* parent) : CampoWizardPage(parent) //quinta riga della griglia //radiobutton con i tipi di installazione - wxArrayString asInstType; - asInstType.Add("Come servizi (consigliato)"); - asInstType.Add("Nel menu esecuzione automatica"); + wxArrayString asInstType; + if (nSessionId == 0) + { + asInstType.Add("Come servizi (consigliato)"); + asInstType.Add("Nel menu esecuzione automatica"); + } + else + asInstType.Add("Come servizi (obbligatorio)"); m_pRadioBox = new wxRadioBox(this, 709, "Modalita' di esecuzione gestori", wxDefaultPosition, - wxDefaultSize, asInstType, 0, wxRA_SPECIFY_COLS); + wxDefaultSize, asInstType, 0, wxRA_SPECIFY_COLS); //setta il default a "come servizio" m_pRadioBox->SetSelection(0); m_pRadioBox->Disable(); @@ -1337,7 +1394,10 @@ bool CampoWizardPage10::TransferDataToWindow() switch (_uInstallType) { case it_server: //server - _strInstallType = "Server"; + if (GetSessionId() > 0) + _strInstallType = "Terminal Server"; + else + _strInstallType = "Server"; _strPrgLocPath = cw.GetPrgLocPath(); _strDataPath = cw.GetDataPath(); _strSrvAuth = cw.GetSrvAuth(); @@ -1409,7 +1469,7 @@ bool CampoWizardPage10::TransferDataToWindow() strBody += wxT(Bold(_strInstallType) + "

"); strBody += wxT("

Cartella dove installare il programma: "); strBody += wxT(Bold(_strPrgLocPath) + "

"); - if (_uInstallType == 2) + if (_uInstallType == it_client) { strBody += wxT("

Cartella di origine dei files del programma: "); strBody += wxT(Bold(_strPrgNetPath) + "

"); @@ -1435,17 +1495,17 @@ bool CampoWizardPage10::TransferDataToWindow() strBody += wxT(Bold(_strSrvDict) + "

"); } //...e loro modalita' di lancio (solo installazione server!) - if (_uInstallType == 1 && (!_strSrvAuth.IsEmpty() || !_strSrvDict.IsEmpty()) && _iSrvAutostartMode >= 0) + if (_uInstallType == it_server && (!_strSrvAuth.IsEmpty() || !_strSrvDict.IsEmpty()) && _iSrvAutostartMode >= 0) { strBody += wxT("

Modalita' di esecuzione dei programmi di gestione: "); - if (_iSrvAutostartMode == 0) + if (_iSrvAutostartMode == lm_service) strBody += wxT(Bold("Come servizi") + "

"); else strBody += wxT(Bold("Nel menu esecuzione automatica") + "

"); } //installazione dati demo (solo in postazione singola) - if (_uInstallType == 0 && _bInstDemoData) + if (_uInstallType == it_standalone && _bInstDemoData) strBody += wxT("

Installazione area dati dimostrativa

"); if (_bDesktopShortcut)