Patch level :10.0 268 (solo cd)
Files correlati : Ricompilazione Demo : [ ] Commento : 0001236: installazione su Vista Descrizione in caso di sistema operativo = vista l'installazione standard permette solo di installare come terminal server. Dei nostri clienti nessuno mi risulta abbia vista come server, sicuramente ne abbiamo come postazioni singole e come client (es. cliente Maya ). git-svn-id: svn://10.65.10.50/trunk@18602 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
224e375269
commit
90d4eb9aa9
@ -1,5 +1,5 @@
|
||||
[MAIN]
|
||||
OEM =
|
||||
OEM = 0
|
||||
|
||||
[OEM_0]
|
||||
Administrator = ’—’Œ<EFBFBD>
|
||||
|
127
setup/utils.cpp
127
setup/utils.cpp
@ -15,6 +15,133 @@ int GetSessionId()
|
||||
return (int) session;
|
||||
}
|
||||
|
||||
//lista delle versioni di windows
|
||||
#define WUNKNOWNSTR _T("unknown Windows version")
|
||||
|
||||
#define W95STR _T("Windows 95")
|
||||
#define W95SP1STR _T("Windows 95 SP1")
|
||||
#define W95OSR2STR _T("Windows 95 OSR2")
|
||||
#define W98STR _T("Windows 98")
|
||||
#define W98SP1STR _T("Windows 98 SP1")
|
||||
#define W98SESTR _T("Windows 98 SE")
|
||||
#define WMESTR _T("Windows ME")
|
||||
|
||||
#define WNT351STR _T("Windows NT 3.51")
|
||||
#define WNT4STR _T("Windows NT 4")
|
||||
#define W2KSTR _T("Windows 2000")
|
||||
#define WXPSTR _T("Windows XP")
|
||||
#define W2003STR _T("Windows Server 2003")
|
||||
#define WVISTASTR _T("Windows Vista")
|
||||
#define W2008STR _T("Windows Server 2008")
|
||||
#define W7STR _T("Windows 7")
|
||||
|
||||
#define WCESTR _T("Windows CE")
|
||||
|
||||
|
||||
//metodo per provare a trovare la versione di windows
|
||||
bool GetWinVer(LPTSTR lpszVersion, int nVersionSize, int *pnVersion)
|
||||
{
|
||||
int nVersion = WUNKNOWN;
|
||||
LPCTSTR cp = WUNKNOWNSTR;
|
||||
|
||||
OSVERSIONINFO osinfo; memset(&osinfo, 0, sizeof(osinfo));
|
||||
osinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
|
||||
if (::GetVersionEx(&osinfo))
|
||||
{
|
||||
DWORD dwPlatformId = osinfo.dwPlatformId;
|
||||
DWORD dwMinorVersion = osinfo.dwMinorVersion;
|
||||
DWORD dwMajorVersion = osinfo.dwMajorVersion;
|
||||
DWORD dwBuildNumber = osinfo.dwBuildNumber & 0xFFFF; // Win 95 needs this
|
||||
|
||||
if ((dwPlatformId == VER_PLATFORM_WIN32_WINDOWS) && (dwMajorVersion == 4))
|
||||
{
|
||||
if ((dwMinorVersion < 10) && (dwBuildNumber == 950))
|
||||
{
|
||||
cp = W95STR;
|
||||
nVersion = W95;
|
||||
}
|
||||
else if ((dwMinorVersion < 10) &&
|
||||
((dwBuildNumber > 950) && (dwBuildNumber <= 1080)))
|
||||
{
|
||||
cp = W95SP1STR;
|
||||
nVersion = W95SP1;
|
||||
}
|
||||
else if ((dwMinorVersion < 10) && (dwBuildNumber > 1080))
|
||||
{
|
||||
cp = W95OSR2STR;
|
||||
nVersion = W95OSR2;
|
||||
}
|
||||
else if ((dwMinorVersion == 10) && (dwBuildNumber == 1998))
|
||||
{
|
||||
cp = W98STR;
|
||||
nVersion = W98;
|
||||
}
|
||||
else if ((dwMinorVersion == 10) &&
|
||||
((dwBuildNumber > 1998) && (dwBuildNumber < 2183)))
|
||||
{
|
||||
cp = W98SP1STR;
|
||||
nVersion = W98SP1;
|
||||
}
|
||||
else if ((dwMinorVersion == 10) && (dwBuildNumber >= 2183))
|
||||
{
|
||||
cp = W98SESTR;
|
||||
nVersion = W98SE;
|
||||
}
|
||||
else if (dwMinorVersion == 90)
|
||||
{
|
||||
cp = WMESTR;
|
||||
nVersion = WME;
|
||||
}
|
||||
}
|
||||
else if (dwPlatformId == VER_PLATFORM_WIN32_NT)
|
||||
{
|
||||
if (dwMajorVersion == 3)
|
||||
{
|
||||
cp = WNT351STR;
|
||||
nVersion = WNT351;
|
||||
}
|
||||
else if (dwMajorVersion == 4)
|
||||
{
|
||||
cp = WNT4STR;
|
||||
nVersion = WNT4;
|
||||
}
|
||||
else if (dwMajorVersion == 5)
|
||||
{
|
||||
switch (dwMinorVersion)
|
||||
{
|
||||
case 0: cp = W2KSTR; nVersion = W2K; break;
|
||||
case 1: cp = WXPSTR; nVersion = WXP; break;
|
||||
case 2:
|
||||
default: cp = W2003STR; nVersion = W2003; break;
|
||||
}
|
||||
}
|
||||
else if (dwMajorVersion == 6)
|
||||
{
|
||||
cp = WVISTASTR;
|
||||
nVersion = WVISTA;
|
||||
// TBI: Windows 2008 Server
|
||||
}
|
||||
else if (dwMajorVersion >= 7)
|
||||
{
|
||||
cp = W7STR;
|
||||
nVersion = W7;
|
||||
}
|
||||
}
|
||||
/* else if (dwPlatformId == VER_PLATFORM_WIN32_CE)
|
||||
{
|
||||
cp = WCESTR;
|
||||
nVersion = WCE;
|
||||
}*/
|
||||
}
|
||||
|
||||
if (lpszVersion != NULL && nVersionSize > 0)
|
||||
_tcsncpy(lpszVersion, cp, nVersionSize-1);
|
||||
if (pnVersion != NULL)
|
||||
*pnVersion = nVersion;
|
||||
|
||||
return nVersion == WUNKNOWN;
|
||||
}
|
||||
|
||||
wxString GetWindowsProgramDirectory()
|
||||
{
|
||||
//scelta della directory di installazione di default
|
||||
|
@ -36,6 +36,34 @@ public:
|
||||
CampoProgressDialog(const wxString& strTitle, int nMaximum = 100, wxWindow* pParent = NULL);
|
||||
};
|
||||
|
||||
//numeri delle versioni di windows
|
||||
#define WUNKNOWN 0
|
||||
|
||||
#define W9XFIRST 1
|
||||
#define W95 1
|
||||
#define W95SP1 2
|
||||
#define W95OSR2 3
|
||||
#define W98 4
|
||||
#define W98SP1 5
|
||||
#define W98SE 6
|
||||
#define WME 7
|
||||
#define W9XLAST 99
|
||||
|
||||
#define WNTFIRST 101
|
||||
#define WNT351 101
|
||||
#define WNT4 102
|
||||
#define W2K 103
|
||||
#define WXP 104
|
||||
#define W2003 105
|
||||
#define WVISTA 106
|
||||
#define W2008 107
|
||||
#define W7 108
|
||||
#define WNTLAST 199
|
||||
|
||||
#define WCEFIRST 201
|
||||
#define WCE 201
|
||||
#define WCELAST 299
|
||||
|
||||
//metodi generici
|
||||
//finestre messaggio,errore,ecc...
|
||||
bool ErrorBox(const wxString str);
|
||||
@ -51,6 +79,7 @@ void NormalizeSlash(wxString& strFileName);
|
||||
//interfaccia con windows
|
||||
wxString GetWindowsProgramDirectory();
|
||||
int GetSessionId();
|
||||
bool GetWinVer(LPTSTR lpszVersion, int nVersionSize, int *pnVersion);
|
||||
|
||||
size_t ListNetworkDisks(wxArrayString& asList);
|
||||
size_t ListSharedDirectories(wxArrayString& asList);
|
||||
|
129
setup/wizard.cpp
129
setup/wizard.cpp
@ -840,14 +840,7 @@ public:
|
||||
bool CampoWizardPage5::ForwardValidate()
|
||||
{
|
||||
// controlla il tipo di installazione!
|
||||
InstallationType nType = it_standalone;
|
||||
|
||||
const int nSessionId = GetSessionId();
|
||||
//nessun SessionId -> installazione comune -> selection dal radiobutton
|
||||
if (nSessionId == 0)
|
||||
nType = InstallationType(m_pRadioBox->GetSelection() + 1);
|
||||
else //SessionId != 0 -> Terminal Server -> installazione di tipo Server obbligata!!!
|
||||
nType = it_server;
|
||||
InstallationType nType = InstallationType(m_pRadioBox->GetSelection() + 1);
|
||||
|
||||
GetWizard().SetInstallationType(nType);
|
||||
return true;
|
||||
@ -855,45 +848,48 @@ bool CampoWizardPage5::ForwardValidate()
|
||||
|
||||
CampoWizardPage5::CampoWizardPage5(wxWizard* parent) : CampoWizardPage(parent)
|
||||
{
|
||||
//chiede al sistema se e' in modalita' termserv (win2003/2008srv)
|
||||
const int nSessionId = GetSessionId();
|
||||
//chiede al sistema la versione di windows
|
||||
int nVersion = 0;
|
||||
::GetWinVer(NULL, 0, &nVersion);
|
||||
|
||||
//Istruzioni per l'uso!
|
||||
wxString strTitle = wxT("Scelta del tipo di installazione");
|
||||
wxString strBody;
|
||||
if (nSessionId == 0)
|
||||
|
||||
strBody = wxT("<p><b>Standard (scelta consigliata)</b>. Installazione su postazione singola, con programmi e dati sul disco locale del computer</p>");
|
||||
strBody += wxT("<p><b>Installazioni di rete</b> (per utenti esperti)</p>");
|
||||
strBody += wxT("<p><b>Server</b>: 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 <b><i>PRODUCT</i></b> e' necessario sia presente un unica postazione di tipo server, ");
|
||||
strBody += wxT("e deve essere installata per prima!</p>");
|
||||
strBody += wxT("<p><b>Client</b>: 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!</p>");
|
||||
|
||||
//sistema multissesione remoto (win2003srv etc.)
|
||||
if (nVersion >= W2003)
|
||||
{
|
||||
strBody = wxT("<p><b>Standard (scelta consigliata)</b>. Installazione su postazione singola, con programmi e dati sul disco locale del computer</p>");
|
||||
strBody += wxT("<p><b>Installazioni di rete</b> (per utenti esperti)</p>");
|
||||
strBody += wxT("<p><b>Server</b>: 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 <b><i>PRODUCT</i></b> e' necessario sia presente un unica postazione di tipo server, ");
|
||||
strBody += wxT("e deve essere installata per prima!</p>");
|
||||
strBody += wxT("<p><b>Client</b>: 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!</p>");
|
||||
}
|
||||
else
|
||||
{
|
||||
strBody += wxT("<p><b>Terminal Server</b>: 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.</p>");
|
||||
strBody += wxT("<p>Selezionando configurazione Terminal Server <i>e' necessario</i> installare il gestore delle autorizzazioni per ");
|
||||
strBody += wxT("poter gestire l'accesso contemporaneo di piu' utenti.</p>");
|
||||
strBody += wxT("<p></p>");
|
||||
strBody += wxT("<p>E' stata rilevata una versione di Windows che consente sessioni remote (es. Windows 2008 Server)</p>");
|
||||
strBody += wxT("<p>Questa versione di Windows supporta un ulteriore tipo di installazione di <b><i>PRODUCT</i></b>: </p>");
|
||||
strBody += wxT("<p><b>Terminal Server:</b> L'installazione e' unica e viene utilizzata dagli utenti di sistema quando aprono una sessione sul server.");
|
||||
strBody += wxT("In questo caso <i>e' necessario scegliere l'installazione Server ed installare il gestore delle autorizzazioni!</i>");
|
||||
strBody += wxT("ATTENZIONE! Selezionare l'installazione tipo Terminal Server solo se necessario!</p>");
|
||||
}
|
||||
SetHTMLText(strTitle, strBody);
|
||||
|
||||
//radiobutton con i tipi di installazione
|
||||
wxArrayString asInstType;
|
||||
if (nSessionId == 0)
|
||||
{
|
||||
asInstType.Add("Standard");
|
||||
asInstType.Add("Server");
|
||||
asInstType.Add("Client");
|
||||
}
|
||||
else
|
||||
asInstType.Add("Terminal Server");
|
||||
|
||||
asInstType.Add("Standard");
|
||||
asInstType.Add("Server");
|
||||
asInstType.Add("Client");
|
||||
|
||||
int nDefault = nVersion < W2003 ? 0 : 1;
|
||||
|
||||
m_pRadioBox = new wxRadioBox(this, 501, "Selezionare il tipo di installazione", wxDefaultPosition,
|
||||
wxDefaultSize, asInstType, 0, wxRA_SPECIFY_ROWS);
|
||||
wxDefaultSize, asInstType, 0, wxRA_SPECIFY_ROWS);
|
||||
|
||||
//setta il default a Standard
|
||||
m_pRadioBox->SetSelection(0);
|
||||
m_pRadioBox->SetSelection(nDefault);
|
||||
GetSizer()->Add(m_pRadioBox);
|
||||
|
||||
}
|
||||
@ -1106,31 +1102,35 @@ bool CampoWizardPage7::ForwardValidate()
|
||||
|
||||
CampoWizardPage7::CampoWizardPage7(wxWizard* parent) : CampoWizardPage(parent)
|
||||
{
|
||||
const int nSessionId = GetSessionId();
|
||||
//chiede al sistema la versione di windows
|
||||
int nVersion = 0;
|
||||
::GetWinVer(NULL, 0, &nVersion);
|
||||
|
||||
wxString strTitle;
|
||||
wxString strBody;
|
||||
|
||||
if (nSessionId == 0)
|
||||
{
|
||||
strTitle = wxT("Installazione di tipo Server");
|
||||
strBody = wxT("<p>Digitare nel campo <b>'Cartella programma'</b> il percorso completo della cartella dove si desidera installare il programma. ");
|
||||
strBody += wxT("Il percorso consigliato e' <i>C:\\APPNAME</i> </p>");
|
||||
strBody += wxT("<p>Digitare nel campo <b>'Cartella dati'</b> il percorso completo della cartella dove si desidera installare l'area dati. ");
|
||||
strBody += wxT("Il percorso consigliato e' <i>C:\\APPNAME\\dati</i> </p>");
|
||||
strBody += wxT("<p>Le cartelle del programma e dei dati <b><u>dovranno essere condivise in modalita' lettura/scrittura</u></b> agli utenti di sistema e di rete che utilizzeranno il software <b><i>PRODUCT</i></b>. ");
|
||||
strBody += wxT("In mancanza di tale condivisione nessun client potra' accedere al server!</p>");
|
||||
strBody += wxT("<p><b>Gestore autorizzazioni:</b> 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 PRODUCT (localhost).</p>");
|
||||
strBody += wxT("<p><b>Gestore dizionari:</b> e' il software che permette di utilizzare PRODUCT 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 PRODUCT (localhost).</p>");
|
||||
strBody += wxT("<p><b>Modalita' di esecuzione programmi di gestione</b><br>");
|
||||
strBody += wxT("<u>Come servizi:</u> 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<br>");
|
||||
strBody += wxT("<u>Nel menu esecuzione automatica:</u> i programmi di gestione vengono eseguiti automaticamente al primo accesso di un utente al server di PRODUCT; usare questa modalita' solo nell'impossibilita' di utilizzare la precedente</p>");
|
||||
}
|
||||
else
|
||||
//installazione di tipo Server normale
|
||||
strTitle = wxT("Installazione di tipo Server");
|
||||
strBody = wxT("<p>Digitare nel campo <b>'Cartella programma'</b> il percorso completo della cartella dove si desidera installare il programma. ");
|
||||
strBody += wxT("Il percorso consigliato e' <i>C:\\APPNAME</i> </p>");
|
||||
strBody += wxT("<p>Digitare nel campo <b>'Cartella dati'</b> il percorso completo della cartella dove si desidera installare l'area dati. ");
|
||||
strBody += wxT("Il percorso consigliato e' <i>C:\\APPNAME\\dati</i> </p>");
|
||||
strBody += wxT("<p>Le cartelle del programma e dei dati <b><u>dovranno essere condivise in modalita' lettura/scrittura</u></b> agli utenti di sistema e di rete che utilizzeranno il software <b><i>PRODUCT</i></b>. ");
|
||||
strBody += wxT("In mancanza di tale condivisione nessun client potra' accedere al server!</p>");
|
||||
strBody += wxT("<p><b>Gestore autorizzazioni:</b> 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 PRODUCT (localhost).</p>");
|
||||
strBody += wxT("<p><b>Gestore dizionari:</b> e' il software che permette di utilizzare PRODUCT 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 PRODUCT (localhost).</p>");
|
||||
strBody += wxT("<p><b>Modalita' di esecuzione programmi di gestione</b><br>");
|
||||
strBody += wxT("<u>Come servizi:</u> 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<br>");
|
||||
strBody += wxT("<u>Nel menu esecuzione automatica:</u> i programmi di gestione vengono eseguiti automaticamente al primo accesso di un utente al server di PRODUCT; usare questa modalita' solo nell'impossibilita' di utilizzare la precedente</p>");
|
||||
|
||||
//se si ha un sistema multissesione remota (es. win2003srv ecc.)
|
||||
if (nVersion >= W2003)
|
||||
{
|
||||
strTitle = wxT("Installazione di tipo Terminal Server");
|
||||
strBody += wxT("<p>E' stata rilevata una versione di Windows che consente sessioni remote (es. Windows 2008 Server) ed è quindi possibile una installazione di questo tipo</p>");
|
||||
strBody = wxT("<p>Digitare nel campo <b>'Cartella programma'</b> il percorso completo della cartella dove si desidera installare il programma. ");
|
||||
strBody += wxT("Il percorso consigliato e' <i>C:\\APPNAME</i> </p>");
|
||||
strBody += wxT("<p>Digitare nel campo <b>'Cartella dati'</b> il percorso completo della cartella dove si desidera installare l'area dati. ");
|
||||
@ -1178,10 +1178,10 @@ CampoWizardPage7::CampoWizardPage7(wxWizard* parent) : CampoWizardPage(parent)
|
||||
//check installa authoriz
|
||||
wxCheckBox* chAuthoriz = new wxCheckBox(this, 705, wxT("Installa il gestore delle autorizzazioni"));
|
||||
//e' obbligatorio installare authoriz in caso di terminal server!
|
||||
if (nSessionId == 0)
|
||||
chAuthoriz->SetValue(false);
|
||||
else
|
||||
if (nVersion >= W2003)
|
||||
chAuthoriz->SetValue(true);
|
||||
else
|
||||
chAuthoriz->SetValue(false);
|
||||
|
||||
gbsSizer->Add(chAuthoriz, wxGBPosition(2, 1));
|
||||
//server authoriz
|
||||
@ -1202,13 +1202,15 @@ CampoWizardPage7::CampoWizardPage7(wxWizard* parent) : CampoWizardPage(parent)
|
||||
//quinta riga della griglia
|
||||
//radiobutton con i tipi di installazione
|
||||
wxArrayString asInstType;
|
||||
if (nSessionId == 0)
|
||||
if (nVersion >= W2003)
|
||||
{
|
||||
asInstType.Add("Come servizi (obbligatorio)");
|
||||
}
|
||||
else
|
||||
{
|
||||
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);
|
||||
@ -1546,10 +1548,7 @@ bool CampoWizardPage10::TransferDataToWindow()
|
||||
switch (_uInstallType)
|
||||
{
|
||||
case it_server: //server
|
||||
if (GetSessionId() > 0)
|
||||
_strInstallType = "Terminal Server";
|
||||
else
|
||||
_strInstallType = "Server";
|
||||
_strInstallType = "Server";
|
||||
_strPrgLocPath = cw.GetPrgLocPath();
|
||||
_strDataPath = cw.GetDataPath();
|
||||
_strSrvAuth = cw.GetSrvAuth();
|
||||
|
Loading…
x
Reference in New Issue
Block a user