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>");
|
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><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>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);
|
SetHTMLText(strTitle, strBody);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2015,8 +2016,13 @@ void CampoSetup::AssociateExtension(const wxFileName& strExeFile, const wxString
|
|||||||
|
|
||||||
bool CampoSetup::CreateAutostartMode(const int iSrvAutostartMode, const wxString& strPath)
|
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"));
|
wxFileName strExe(strPath, wxT("lurch.exe"));
|
||||||
strExe.AppendDir("servers");
|
strExe.AppendDir("servers");
|
||||||
|
//stringa path della cartella Servers in base alle scelte dell'utente
|
||||||
|
const wxString strSrvPath = strPath + "\\servers";
|
||||||
|
|
||||||
switch (iSrvAutostartMode)
|
switch (iSrvAutostartMode)
|
||||||
{
|
{
|
||||||
//esecuzione server come servizi (magia!)
|
//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");
|
wxString strValue = ReadLocalMachineRegistryKey("SYSTEM\\CurrentControlSet\\Services\\Lurch\\Parameters\\Application");
|
||||||
|
|
||||||
//elimina un eventuale servizio precedente (senno' col cavolo che lo riesce a modificare!)
|
//elimina un eventuale servizio precedente (senno' col cavolo che lo riesce a modificare!)
|
||||||
wxString strRemove = "instsrv Lurch REMOVE";
|
//utilizza il programma instsrv.exe dentro la cartella servers installata
|
||||||
const long lRemove = wxExecute(strRemove, wxEXEC_SYNC);
|
// 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)
|
//aggiunge la voce ai servizi di windows (dentro strumenti di amministrazione)
|
||||||
wxString strCreateService = "instsrv Lurch ";
|
//utilizza i programmi instrv.exe e srvany.exe dentro la cartella servers installata
|
||||||
strCreateService += wxGetCwd();
|
wxString strCreateService = strSrvPath + "\\instsrv Lurch ";
|
||||||
|
// strCreateService += wxGetCwd();
|
||||||
|
// strCreateService += "\\srvany.exe";
|
||||||
|
strCreateService += strSrvPath;
|
||||||
strCreateService += "\\srvany.exe";
|
strCreateService += "\\srvany.exe";
|
||||||
//esegue il programma di installazione servizi di Windows creando la voce
|
//esegue il programma di installazione servizi di Windows creando la voce
|
||||||
const long lExec = wxExecute(strCreateService, wxEXEC_SYNC);
|
const long lExec = wxExecute(strCreateService, wxEXEC_SYNC);
|
||||||
@ -2157,25 +2169,23 @@ void CampoSetup::OnTimer(wxTimerEvent& WXUNUSED(e))
|
|||||||
wxFileName strPath = argv[0];
|
wxFileName strPath = argv[0];
|
||||||
strPath.SetCwd();
|
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
|
//tipo di installazione/aggiornamento
|
||||||
const unsigned int uInstallationType = pWizard->GetInstallationType();
|
const unsigned int uInstallationType = pWizard->GetInstallationType();
|
||||||
|
const bool bNewInstallation = uInstallationType < 3;
|
||||||
//se nuova installazione deve anche creare la directory di destinazione
|
//installazione server?
|
||||||
if (uInstallationType < 3)
|
const bool bInstallLurch = uInstallationType == 1 && (pWizard->GetInstUseAuth() | pWizard->GetInstUseDict());
|
||||||
{
|
//cartelle selezionate dall'utente
|
||||||
//creazione della directory dei programmi
|
const wxString& strPrgLocPath = pWizard->GetPrgLocPath();
|
||||||
CheckAndMakeDir(pWizard->GetPrgLocPath(), "programmi");
|
const wxString& strDataPath = pWizard->GetDataPath();
|
||||||
|
|
||||||
//creazione della directory dei dati
|
//se nuova installazione deve anche creare la directory di destinazione
|
||||||
CheckAndMakeDir(pWizard->GetDataPath(), "dati");
|
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)
|
//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
|
//..contando anche quanti sono e memorizzandoli in un array asFileList
|
||||||
const size_t uFilesToCopy = wxDir::GetAllFiles(strSourcePath.GetPath(), &asFilesList);
|
const size_t uFilesToCopy = wxDir::GetAllFiles(strSourcePath.GetPath(), &asFilesList);
|
||||||
|
|
||||||
//prende la cartella di destinazione...
|
//per ogni files da copiare controlla i path sorgente e destinazione(problema con sottodirectory tipo dati)
|
||||||
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
|
|
||||||
wxString strFileCurr;
|
wxString strFileCurr;
|
||||||
const size_t nPathLenght = strSourcePath.GetPath().Len();
|
const size_t nPathLenght = strSourcePath.GetPath().Len();
|
||||||
for (size_t i = 0; i < uFilesToCopy; i++)
|
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)
|
if (asFilesList[i].Lower().Find("\\dati\\") > 0)
|
||||||
{
|
{
|
||||||
strFileCurr = strDataPath;
|
if (bNewInstallation) //i DATI NON VANNO MAI installati in caso di aggiornamento!!!
|
||||||
strFileCurr += asFilesList[i].Mid(nPathLenght + 5);
|
{
|
||||||
|
strFileCurr = strDataPath;
|
||||||
|
strFileCurr += asFilesList[i].Mid(nPathLenght + 5);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else //files dei programmi
|
else //files dei programmi
|
||||||
{
|
{
|
||||||
strFileCurr = strDestPath;
|
strFileCurr = strPrgLocPath;
|
||||||
strFileCurr += asFilesList[i].Mid(nPathLenght);
|
strFileCurr += asFilesList[i].Mid(nPathLenght);
|
||||||
}
|
}
|
||||||
|
|
||||||
strFileCurr.MakeLower();
|
//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!!
|
||||||
const wxFileName strFileName(strFileCurr);
|
if (!strFileCurr.IsEmpty())
|
||||||
|
|
||||||
//i files .ini vanno trattati con i guanti
|
|
||||||
if (strFileName.GetExt() == ".ini")
|
|
||||||
{
|
{
|
||||||
const wxString strName = strFileName.GetName();
|
strFileCurr.MakeLower(); //minuscolizzazione di sicurezza
|
||||||
//campo.ini e install.ini vanno lasciati stare se aggiornamento!!!
|
const wxFileName strFileName(strFileCurr);
|
||||||
if ((strName == "campo" || strName == "install") && strFileName.FileExists())
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
//eventuali sottodirectory le crea
|
|
||||||
const wxString strDir = strFileName.GetPath();
|
|
||||||
if (!wxDirExists(strDir))
|
|
||||||
wxMkdir(strDir);
|
|
||||||
|
|
||||||
if(!wxCopyFile(asFilesList[i], strFileCurr))
|
//i files .ini vanno trattati con i guanti (se esistono gia' non vanno copiati!!!)
|
||||||
{
|
if (strFileName.GetExt() == ".ini")
|
||||||
wxString strErr = "Impossibile copiare il file ";
|
{
|
||||||
strErr += asFilesList[i];
|
const wxString strName = strFileName.GetName();
|
||||||
strErr += " in ";
|
//campo.ini e install.ini vanno lasciati stare se aggiornamento!!!
|
||||||
strErr += strFileCurr;
|
if ((strName == "campo" || strName == "install") && strFileName.FileExists())
|
||||||
strErr += "\nInstallazione interrotta!";
|
continue;
|
||||||
ErrorBox(strErr);
|
}
|
||||||
break;
|
//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
|
//adesso deve compilare il campo.ini se nuova installazione..
|
||||||
if (uInstallationType < 3)
|
if (bNewInstallation)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
//..e modificare comunque l'install.ini
|
||||||
|
|
||||||
//solo se sta installando campo in postazione server e deve installare un gestore di servizi
|
//solo se sta installando campo in postazione server e deve installare un gestore di servizi..
|
||||||
if (uInstallationType == 1)
|
//..avvia la procedura della creazione dell'autostart(un casino)
|
||||||
|
if (bInstallLurch)
|
||||||
{
|
{
|
||||||
const bool bInstallLurch = pWizard->GetInstUseAuth() | pWizard->GetInstUseDict();
|
const int iSrvAutostartMode = pWizard->GetSrvAutostartMode();
|
||||||
if (bInstallLurch)
|
CreateAutostartMode(iSrvAutostartMode, strPrgLocPath);
|
||||||
{
|
|
||||||
const int iSrvAutostartMode = pWizard->GetSrvAutostartMode();
|
|
||||||
CreateAutostartMode(iSrvAutostartMode, strDest);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//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
|
//terminato il tutto scrive/aggiorna/lascia stare il campo.stp
|
||||||
|
|
||||||
//questo e' un esempio di associazione automatica di estensione file
|
//questo e' un esempio di associazione automatica di estensione file
|
||||||
|
Loading…
x
Reference in New Issue
Block a user