Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/trunk@15574 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
30441f5706
commit
0c889d778e
152
setup/Setup.cpp
152
setup/Setup.cpp
@ -398,6 +398,7 @@ CampoWizardPage1::CampoWizardPage1(wxWizard* parent) : CampoWizardPage(parent)
|
||||
wxString strBody = wxT("<p>Questo programma vi guiderà passo a passo nell'installazione / aggiornamento del software.</p>");
|
||||
strBody += wxT("<p><u><b>Leggere attentamente le istruzioni</u> che saranno visualizzate nelle finestre di questo programma di installazione!</b></p>");
|
||||
strBody += wxT("<p>Prima di proseguire con l'installazione / aggiornamento <u>assicurarsi di avere effettuato il login a Windows con un utente di tipo 'Amministratore' di sistema.</u></p>");
|
||||
strBody += wxT("<p>In caso si desideri aggiornare una postazione tipo server di APPNAME su cui sia attivo il gestore dei servizi di APPNAME, arrestare prima tale gestore dei servizi.</p>");
|
||||
SetHTMLText(strTitle, strBody);
|
||||
}
|
||||
|
||||
@ -2015,8 +2016,13 @@ void CampoSetup::AssociateExtension(const wxFileName& strExeFile, const wxString
|
||||
|
||||
bool CampoSetup::CreateAutostartMode(const int iSrvAutostartMode, const wxString& strPath)
|
||||
{
|
||||
//creazione dei filenames e dei path necessari in giro per la funzione
|
||||
//filename (con path quindi) di Lurch.exe
|
||||
wxFileName strExe(strPath, wxT("lurch.exe"));
|
||||
strExe.AppendDir("servers");
|
||||
//stringa path della cartella Servers in base alle scelte dell'utente
|
||||
const wxString strSrvPath = strPath + "\\servers";
|
||||
|
||||
switch (iSrvAutostartMode)
|
||||
{
|
||||
//esecuzione server come servizi (magia!)
|
||||
@ -2027,12 +2033,18 @@ bool CampoSetup::CreateAutostartMode(const int iSrvAutostartMode, const wxString
|
||||
wxString strValue = ReadLocalMachineRegistryKey("SYSTEM\\CurrentControlSet\\Services\\Lurch\\Parameters\\Application");
|
||||
|
||||
//elimina un eventuale servizio precedente (senno' col cavolo che lo riesce a modificare!)
|
||||
wxString strRemove = "instsrv Lurch REMOVE";
|
||||
const long lRemove = wxExecute(strRemove, wxEXEC_SYNC);
|
||||
//utilizza il programma instsrv.exe dentro la cartella servers installata
|
||||
// wxString strRemove = "instsrv Lurch REMOVE";
|
||||
// const long lRemove = wxExecute(strRemove, wxEXEC_SYNC);
|
||||
wxString strRemove = strSrvPath + "\\instsrv Lurch REMOVE";
|
||||
const long lRemove = wxExecute(strRemove, wxEXEC_SYNC);
|
||||
|
||||
//aggiunge la voce ai servizi di windows (dentro strumenti di amministrazione)
|
||||
wxString strCreateService = "instsrv Lurch ";
|
||||
strCreateService += wxGetCwd();
|
||||
//utilizza i programmi instrv.exe e srvany.exe dentro la cartella servers installata
|
||||
wxString strCreateService = strSrvPath + "\\instsrv Lurch ";
|
||||
// strCreateService += wxGetCwd();
|
||||
// strCreateService += "\\srvany.exe";
|
||||
strCreateService += strSrvPath;
|
||||
strCreateService += "\\srvany.exe";
|
||||
//esegue il programma di installazione servizi di Windows creando la voce
|
||||
const long lExec = wxExecute(strCreateService, wxEXEC_SYNC);
|
||||
@ -2157,25 +2169,23 @@ void CampoSetup::OnTimer(wxTimerEvent& WXUNUSED(e))
|
||||
wxFileName strPath = argv[0];
|
||||
strPath.SetCwd();
|
||||
|
||||
const wxString& strDest = pWizard->GetPrgLocPath();
|
||||
const wxFileName strExe(strDest, wxT("ba0.exe"));
|
||||
|
||||
//creazione dell'icona sul desktop
|
||||
const bool bDesktopShortcut = pWizard->GetDesktopShortcut();
|
||||
if (bDesktopShortcut)
|
||||
CreateIcon(CSIDL_COMMON_DESKTOPDIRECTORY, strExe);
|
||||
|
||||
//tipo di installazione/aggiornamento
|
||||
const unsigned int uInstallationType = pWizard->GetInstallationType();
|
||||
|
||||
//se nuova installazione deve anche creare la directory di destinazione
|
||||
if (uInstallationType < 3)
|
||||
{
|
||||
//creazione della directory dei programmi
|
||||
CheckAndMakeDir(pWizard->GetPrgLocPath(), "programmi");
|
||||
const bool bNewInstallation = uInstallationType < 3;
|
||||
//installazione server?
|
||||
const bool bInstallLurch = uInstallationType == 1 && (pWizard->GetInstUseAuth() | pWizard->GetInstUseDict());
|
||||
//cartelle selezionate dall'utente
|
||||
const wxString& strPrgLocPath = pWizard->GetPrgLocPath();
|
||||
const wxString& strDataPath = pWizard->GetDataPath();
|
||||
|
||||
//creazione della directory dei dati
|
||||
CheckAndMakeDir(pWizard->GetDataPath(), "dati");
|
||||
//se nuova installazione deve anche creare la directory di destinazione
|
||||
if (bNewInstallation)
|
||||
{
|
||||
//creazione della directory dei programmi (compreso l'intero albero directory)
|
||||
CheckAndMakeDir(strPrgLocPath, "programmi");
|
||||
|
||||
//creazione della directory dei dati (compreso l'intero albero directory)
|
||||
CheckAndMakeDir(strDataPath, "dati");
|
||||
}
|
||||
|
||||
//copia del contenuto della cartella campo nella cartella di destinazione (installaz/aggiornam)
|
||||
@ -2188,72 +2198,86 @@ void CampoSetup::OnTimer(wxTimerEvent& WXUNUSED(e))
|
||||
//..contando anche quanti sono e memorizzandoli in un array asFileList
|
||||
const size_t uFilesToCopy = wxDir::GetAllFiles(strSourcePath.GetPath(), &asFilesList);
|
||||
|
||||
//prende la cartella di destinazione...
|
||||
const wxString strDestPath = pWizard->GetPrgLocPath();
|
||||
const wxString strDataPath = pWizard->GetDataPath();
|
||||
//...e copia tutti i files nella cartella di destinazione, tranne i .ini che devono essere compilati
|
||||
//per ogni files da copiare controlla i path sorgente e destinazione(problema con sottodirectory tipo dati)
|
||||
wxString strFileCurr;
|
||||
const size_t nPathLenght = strSourcePath.GetPath().Len();
|
||||
for (size_t i = 0; i < uFilesToCopy; i++)
|
||||
{
|
||||
//files dei dati standard!
|
||||
/* che fare con i servers? copiare la directory comunque o saltarli?
|
||||
if (asFilesList[i].Lower().Find("\\servers\\") > 0 && bInstallLurch)
|
||||
{
|
||||
strFileCurr = strPrgLocPath;
|
||||
strFileCurr += asFilesList[i].Mid(nPathLenght);
|
||||
}
|
||||
else*/
|
||||
//files dei dati standard! solo in caso di nuova installazione!!
|
||||
if (asFilesList[i].Lower().Find("\\dati\\") > 0)
|
||||
{
|
||||
strFileCurr = strDataPath;
|
||||
strFileCurr += asFilesList[i].Mid(nPathLenght + 5);
|
||||
if (bNewInstallation) //i DATI NON VANNO MAI installati in caso di aggiornamento!!!
|
||||
{
|
||||
strFileCurr = strDataPath;
|
||||
strFileCurr += asFilesList[i].Mid(nPathLenght + 5);
|
||||
}
|
||||
}
|
||||
else //files dei programmi
|
||||
{
|
||||
strFileCurr = strDestPath;
|
||||
strFileCurr = strPrgLocPath;
|
||||
strFileCurr += asFilesList[i].Mid(nPathLenght);
|
||||
}
|
||||
|
||||
strFileCurr.MakeLower();
|
||||
|
||||
const wxFileName strFileName(strFileCurr);
|
||||
|
||||
//i files .ini vanno trattati con i guanti
|
||||
if (strFileName.GetExt() == ".ini")
|
||||
//copia i files nella cartella di destinazione (programmi,dati,cazzi e mazzi);se il nome del file..
|
||||
//..di destinazione e' vuoto significa che non lo deve copiare!!
|
||||
if (!strFileCurr.IsEmpty())
|
||||
{
|
||||
const wxString strName = strFileName.GetName();
|
||||
//campo.ini e install.ini vanno lasciati stare se aggiornamento!!!
|
||||
if ((strName == "campo" || strName == "install") && strFileName.FileExists())
|
||||
continue;
|
||||
}
|
||||
//eventuali sottodirectory le crea
|
||||
const wxString strDir = strFileName.GetPath();
|
||||
if (!wxDirExists(strDir))
|
||||
wxMkdir(strDir);
|
||||
strFileCurr.MakeLower(); //minuscolizzazione di sicurezza
|
||||
const wxFileName strFileName(strFileCurr);
|
||||
|
||||
if(!wxCopyFile(asFilesList[i], strFileCurr))
|
||||
{
|
||||
wxString strErr = "Impossibile copiare il file ";
|
||||
strErr += asFilesList[i];
|
||||
strErr += " in ";
|
||||
strErr += strFileCurr;
|
||||
strErr += "\nInstallazione interrotta!";
|
||||
ErrorBox(strErr);
|
||||
break;
|
||||
}
|
||||
//i files .ini vanno trattati con i guanti (se esistono gia' non vanno copiati!!!)
|
||||
if (strFileName.GetExt() == ".ini")
|
||||
{
|
||||
const wxString strName = strFileName.GetName();
|
||||
//campo.ini e install.ini vanno lasciati stare se aggiornamento!!!
|
||||
if ((strName == "campo" || strName == "install") && strFileName.FileExists())
|
||||
continue;
|
||||
}
|
||||
//eventuali sottodirectory le crea (solo se hanno un nome)
|
||||
const wxString strDir = strFileName.GetPath();
|
||||
if (!strDir.IsEmpty() && !wxDirExists(strDir))
|
||||
wxMkdir(strDir);
|
||||
|
||||
}
|
||||
if(!wxCopyFile(asFilesList[i], strFileCurr))
|
||||
{
|
||||
wxString strErr = "Impossibile copiare il file ";
|
||||
strErr += asFilesList[i];
|
||||
strErr += " in ";
|
||||
strErr += strFileCurr;
|
||||
strErr += "\nInstallazione interrotta!";
|
||||
ErrorBox(strErr);
|
||||
break;
|
||||
}
|
||||
} //if (!strFileCurr.IsEmpty()..
|
||||
} //for(size_t...
|
||||
|
||||
//adesso deve compilare i .ini se nuova installazione
|
||||
if (uInstallationType < 3)
|
||||
//adesso deve compilare il campo.ini se nuova installazione..
|
||||
if (bNewInstallation)
|
||||
{
|
||||
}
|
||||
//..e modificare comunque l'install.ini
|
||||
|
||||
//solo se sta installando campo in postazione server e deve installare un gestore di servizi
|
||||
if (uInstallationType == 1)
|
||||
//solo se sta installando campo in postazione server e deve installare un gestore di servizi..
|
||||
//..avvia la procedura della creazione dell'autostart(un casino)
|
||||
if (bInstallLurch)
|
||||
{
|
||||
const bool bInstallLurch = pWizard->GetInstUseAuth() | pWizard->GetInstUseDict();
|
||||
if (bInstallLurch)
|
||||
{
|
||||
const int iSrvAutostartMode = pWizard->GetSrvAutostartMode();
|
||||
CreateAutostartMode(iSrvAutostartMode, strDest);
|
||||
}
|
||||
const int iSrvAutostartMode = pWizard->GetSrvAutostartMode();
|
||||
CreateAutostartMode(iSrvAutostartMode, strPrgLocPath);
|
||||
}
|
||||
|
||||
//creazione dell'icona sul desktop
|
||||
const wxFileName strExe(strPrgLocPath, wxT("ba0.exe"));
|
||||
const bool bDesktopShortcut = pWizard->GetDesktopShortcut();
|
||||
if (bDesktopShortcut)
|
||||
CreateIcon(CSIDL_COMMON_DESKTOPDIRECTORY, strExe);
|
||||
|
||||
//terminato il tutto scrive/aggiorna/lascia stare il campo.stp
|
||||
|
||||
//questo e' un esempio di associazione automatica di estensione file
|
||||
|
Loading…
x
Reference in New Issue
Block a user