Corretta decompressione zip aggiornando a wxWidgets 2.8.12 non più compatibile con wxWidgets 2.8.6

git-svn-id: svn://10.65.10.50/branches/R_10_00@22632 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2012-04-10 07:50:04 +00:00
parent 366aee3fd0
commit e52a002d8b
8 changed files with 116 additions and 93 deletions

View File

@ -520,9 +520,7 @@ bool CampoSetup::UnzipModule(const wxString& strPrgLocPath, const wxString& strS
//ordina le patch per numero crescente ma mette davanti a tutte il pacco (sysinst1)
asFilesList.Sort(PatchCompare);
for (size_t i = 0; i < uFilesToCopy; i++)
{
UnzipFile(asFilesList[i] , strPrgLocPath);
}
//aggiorna l'install.ini in base al numero di patch e versione dell'ultimo file zip di sistema
//ci vuole un giro allucinogeno per trasformare il .zip in .ini e togliere quel cazzo di 1 in fondo
@ -893,10 +891,15 @@ void CampoSetup::DiskUpdate()
//aggiornamento dei moduli SY ed SR da disco
//il modulo SY va aggiornato comunque
#ifndef NDEBUG
strRemotePath = "c:/campo11/cd/program/";
DiskUpdateModule(strLocalPath, strRemotePath, "li");
#else
DiskUpdateModule(strLocalPath, strRemotePath, "sy");
//il modulo SR va aggiornato solo se usato (si sta aggiornando il cpu con il gestore delle chiavi)
if (m_bLurchWasRunning)
DiskUpdateModule(strLocalPath, strRemotePath, "sr");
#endif
wxSetWorkingDirectory(strLocalPath);
wxExecute("ba1 -6 /uADMIN");
@ -1533,9 +1536,9 @@ void CampoSetup::OnTimer(wxTimerEvent& WXUNUSED(e))
//aggiornamento da disco,client,web
if (strCommand == "-ud")
DiskUpdate();
DiskUpdate(); else
if (strCommand == "-uc")
ClientUpdate();
ClientUpdate(); else
if (strCommand == "-uw")
InternetUpdate();
}

View File

@ -1,4 +1,4 @@
2101
2121
[5]
*=31-12-2010
Owner=PrassiNapoli

View File

@ -309,8 +309,16 @@ unsigned short ServerLogin(int& year, wxString& strSrvName)
return serno;
}
bool DictionaryLogin(const wxString& strSrvName)
{
return false;
}
///////////////////////////////
// Gestione chiave SSA //
///////////////////////////////
unsigned short SSALogin(int& year)
{
return 0xFFFF;
}

View File

@ -7,6 +7,8 @@ unsigned short HardlockLogin(int& year);
void EncodeEutronPassword(char* str);
unsigned short EutronLogin(int& year);
unsigned short SSALogin(int& year);
unsigned short ServerLogin(int& year, wxString& strSrvName);
unsigned short ServerLoggedUsers(const wxString& strSrvName);
bool DictionaryLogin(const wxString& strSrvName);

View File

@ -1,5 +1,5 @@
[MAIN]
OEM = 0
OEM = 1
[OEM_0]
Administrator = 挆拰<EFBFBD>
@ -12,7 +12,7 @@ Password =
Product = 敂挀瀎窙乏坷翂赜
Reseller = 挌哻复笢炒<EFBFBD>已菑鍥英諔
Themes = aga_themes.ini
Web = www.aga.it/release100/
Web = http://85.18.53.183/release110/
[OEM_1]
Administrator = 挆拰<EFBFBD>
@ -24,7 +24,7 @@ Password =
Product = 敂挀瀎窙乏坷翂赜
Reseller = ぜ番緁粵关渲袛已菑讔暂茏茘蜙鏃恽茮
Themes = sirio_themes.ini
Web = http://patch.campoenterprise.com/PatchV1000/
Web = http://85.18.53.183/release110/
[OEM_2]
Administrator = 挆拰<EFBFBD>
@ -36,19 +36,10 @@ Password =
Product = 敘寛挄r€<EFBFBD>ɑ
Reseller = ぜ番緁粵关渲袛已菑讔暂茏茘蜙鏃恽茮
Themes = silav_themes.ini
Web = http://patch.campoenterprise.com/PatchV1000/
Web = http://85.18.53.183/release110/
[OEM_3]
Administrator = Œ<EFBFBD>
Icon = geisoft.ico
Licence = geisoft_licenza.htm
Logo = geisoft_logo.jpg
Name = ””’“ž
Password = ²·s°¸´
Product = ””’“ž
Reseller = ˜¸®c¢µ¸¡gØ—<EFBFBD>Û”
Themes = geisoft_themes.ini
Web = www.aga.it/release100/
Dismissed=22/09/2011
[OEM_4]
Administrator = 挆拰<EFBFBD>
@ -60,19 +51,10 @@ Password =
Product = 敘寛挄r€<EFBFBD>ɑ
Reseller = ジ沟癌茤菂鐮討鄺
Themes = tetra_themes.ini
Web = http://patch.campoenterprise.com/PatchV1000/
Web = http://85.18.53.183/release110/
[OEM_5]
Administrator = Œ<EFBFBD>
Icon = aga.ico
Licence = procom_licenza.htm
Logo = aga_logo.jpg
Name = ””’“ž
Password = ²·s°¸´
Product = ””“žf··¦¿ÀÁ‰ØÓ
Reseller = ¡¥”†ž“
Themes = aga_themes.ini
Web = www.aga.it/release100/
Dismissed=22/09/2011
[OEM_6]
Administrator = 挆拰<EFBFBD>
@ -85,7 +67,7 @@ Password =
Product = 敂挀瀎窙乏坷翂赜
Reseller = あ垝枊烳苶祡硈
Themes = aga_themes.ini
Web = www.aga.it/release100/
Web = http://85.18.53.183/release110/
[OEM_7]
Administrator = 挆拰<EFBFBD>
@ -98,7 +80,7 @@ Password =
Product = 敂挀瀎窙乏坷翂赜
Reseller = 挌哻复笢炒<EFBFBD>已菑鍥英諔
Themes = aga_themes.ini
Web = www.aga.it/release100/
Web = http://85.18.53.183/release110/
[OEM_8]
Administrator = 挆拰<EFBFBD>
@ -111,4 +93,4 @@ Password =
Product = 敂挀瀎窙乏坷翂赜
Reseller = 挌哻复笢炒<EFBFBD>已菑鍥英諔
Themes = aga_themes.ini
Web = www.aga.it/release100/
Web = http://85.18.53.183/release110/

View File

@ -592,7 +592,7 @@ static size_t GetZipList(const char* strZipFile, wxArrayString& aFiles)
bool UnzipFile(const char* strSrcFile, const char* strDestDir)
bool UnzipFile(const wxString& strSrcFile, const wxString& strDestDir)
{
//se il file da unzippare è su un disco remoto, lo copia in locale per unzipparlo e alla fine elimina la copia..
//..è importante per velocizzare l'aggiornamento da disco
@ -643,29 +643,34 @@ bool UnzipFile(const char* strSrcFile, const char* strDestDir)
}
else
{
//wxZipInputStream fin(strZipFile, strFileName);
wxFileInputStream fstr(strZipFile);
//wxZipInputStream fin(strZipFile, strFileName); // 2.6 compatibility is gone!
wxFFileInputStream fstr(strZipFile);
wxZipInputStream fin(fstr);
wxZipEntry ze(strFileName);
fin.OpenEntry(ze);
wxString strOutFile = strDestDir;
if (!wxEndsWithPathSeparator(strOutFile) && !wxIsPathSeparator(strFileName[0]))
strOutFile += wxFILE_SEP_PATH;
strOutFile += strFileName;
wxZipEntry* entry = NULL;
do entry = fin.GetNextEntry();
while (entry && entry->GetInternalName() != strFileName);
wxString strPath;
::wxSplitPath(strOutFile, &strPath, NULL, NULL);
CheckAndMakeDir(strPath, wxEmptyString);
if (entry && fin.OpenEntry(*entry))
{
wxString strOutFile = strDestDir;
if (!wxEndsWithPathSeparator(strOutFile) && !wxIsPathSeparator(strFileName[0]))
strOutFile += wxFILE_SEP_PATH;
strOutFile += strFileName;
wxString strPath;
::wxSplitPath(strOutFile, &strPath, NULL, NULL);
CheckAndMakeDir(strPath, wxEmptyString);
wxFileOutputStream fout(strOutFile);
fout.Write(fin);
fout.Close();
wxFileOutputStream fout(strOutFile);
fout.Write(fin);
fout.Close();
fin.CloseEntry();
fin.CloseEntry();
if (strOutFile.EndsWith("res.zip"))
UnzipFile(strOutFile , strPath);
if (strOutFile.EndsWith("res.zip"))
UnzipFile(strOutFile , strPath);
}
}
}

View File

@ -73,7 +73,7 @@ bool YesNoBox(const wxString str);
//trattamento files
void CheckAndMakeDir(const wxString& strDir, const wxString& strMsg);
bool UnzipFile(const char* strZipFile, const char* strDestdir);
bool UnzipFile(const wxString& strZipFile, const wxString& strDestdir);
bool CopiaFile(const wxString& file1, const wxString& file2);
void NormalizeSlash(wxString& strFileName);

View File

@ -584,7 +584,7 @@ CampoWizardPage3::CampoWizardPage3(wxWizard* parent) : CampoWizardPage(parent)
if (asCampi.IsEmpty())
{
strTitle += wxT("Scelta Installazione");
strBody += wxT("<p>E' possibile <b>INSTALLARE <i>PRODUCT</i></b> in un nuovo direttorio.</p>");
strBody += wxT("<p>E' possibile <b>INSTALLARE <i>PRODUCT</i></b> in una nuova cartella.</p>");
asCampi.Add("Nuova installazione"); //voce di nuova installazione!
m_pRadioBox = new wxRadioBox(this, 301, "Installazione del software", wxDefaultPosition,
@ -594,9 +594,9 @@ CampoWizardPage3::CampoWizardPage3(wxWizard* parent) : CampoWizardPage(parent)
else
{
strTitle += wxT("Scelta Aggiornamento / Installazione");
strBody += wxT("<p>E' possibile <b>AGGIORNARE (scelta consigliata)</b> una installazione di <b><i>PRODUCT</i></b> gia' presente oppure <b>INSTALLARE</b> in un nuovo direttorio.</p>");
strBody += wxT("<p>Selezionare l'opzione desiderata nel riquadro sottostante. In caso di piu' di una installazione presente sul computer ");
strBody += wxT("sara' preselezionata la eventuale installazione di tipo <b>Server</b> o <b>Standard</b>, in quanto <u>deve essere aggiornata per prima</u>! ");
strBody += wxT("<p>E' possibile <b>AGGIORNARE (scelta consigliata)</b> una installazione di <b><i>PRODUCT</i></b> gia' presente oppure <b>INSTALLARE</b> in una nuova cartella.</p>");
strBody += wxT("<p>Selezionare l'opzione desiderata nel riquadro sottostante. In caso di più d'una installazione presente sul computer ");
strBody += wxT("sarà preselezionata la eventuale installazione di tipo <b>Server</b> o <b>Standard</b>, in quanto <u>deve essere aggiornata per prima</u>! ");
strBody += wxT("<p>In questo caso procedere all'aggiornamento di tale installazione Server e <u>aggiornare successivamente le postazioni client ");
strBody += wxT("lanciando il programma <b><i>PRODUCT</i></b> su di esse</u></p>");
@ -625,6 +625,7 @@ protected:
void OnHLPick(wxCommandEvent& e);
void OnEUPick(wxCommandEvent& e);
void OnSRPick(wxCommandEvent& e);
void OnSSAPick(wxCommandEvent& e);
virtual bool ForwardValidate();
virtual bool TransferDataToWindow();
@ -643,6 +644,7 @@ BEGIN_EVENT_TABLE(CampoWizardPage4, CampoWizardPage)
EVT_BUTTON(401, OnHLPick)
EVT_BUTTON(402, OnEUPick)
EVT_BUTTON(403, OnSRPick)
EVT_BUTTON(405, OnSSAPick)
END_EVENT_TABLE()
void CampoWizardPage4::OnHLPick(wxCommandEvent& e)
@ -673,6 +675,13 @@ void CampoWizardPage4::OnSRPick(wxCommandEvent& e)
}
}
void CampoWizardPage4::OnSSAPick(wxCommandEvent& e)
{
wxString path("../../chiavi/ssa/GetInfo.exe");
wxExecute(path, wxEXEC_SYNC);
}
bool CampoWizardPage4::ForwardValidate()
{
//per poter proseguire deve aver trovato una chiave o un server!
@ -714,6 +723,7 @@ bool CampoWizardPage4::TransferDataToWindow()
FindWindowById(402)->Disable();
FindWindowById(403)->Disable();
FindWindowById(404)->Disable();
FindWindowById(405)->Disable();
//controlla preventivamente se la chiave c'e' ed eventualmente quale e' (hardlock,eutron,server di chiavi)
const int nDongleType = DongleTest();
@ -725,21 +735,25 @@ bool CampoWizardPage4::TransferDataToWindow()
{
case 1:
strBody += wxT("<p>E' stata rilevata una chiave tipo <b>Hardlock</b>:</p>");
strBody += wxT("<p align=center><img src=\"../../campo/servers/hardlock.gif\" /></p>");
strBody += wxT("<p align=center><img src=\"hardlock.gif\" /></p>");
strBody += wxT("<p>Si puo' procedere con l'installazione /aggiornamento del software <b><i>PRODUCT</i></b>. Premere il pulsante \"Avanti\".</p>");
break;
case 2:
strBody += wxT("<p>E' stata rilevata una chiave tipo <b>Eutron</b>:</p>");
strBody += wxT("<p align=center><img src=\"../../campo/servers/eutron.gif\" /></p>");
strBody += wxT("<p align=center><img src=\"eutron.gif\" /></p>");
strBody += wxT("<p>Si puo' procedere con l'installazione /aggiornamento del software <b><i>PRODUCT</i></b>. Premere il pulsante \"Avanti\".</p>");
break;
case 3:
strBody += wxT("<p>E' stato rilevata una chiave remota condivisa in rete con il servizio di gestione autorizzazioni:</p>");
strBody += wxT("<p align=center><img src=\"../../campo/servers/autho.gif\" /></p>");
strBody += wxT("<p align=center><img src=\"autho.gif\" /></p>");
strBody += wxT("<p>Si puo' procedere con l'installazione /aggiornamento del software <b><i>PRODUCT</i></b>. Premere il pulsante \"Avanti\".</p>");
Set(404, GetWizard().GetSrvAuth());
break;
case 4:
strBody += wxT("<p>E' stata rilevata una chiave tipo <b>SSA</b>:</p>");
strBody += wxT("<p align=center><img src=\"ssa.gif\" /></p>");
strBody += wxT("<p>Si puo' procedere con l'installazione /aggiornamento del software <b><i>PRODUCT</i></b>. Premere il pulsante \"Avanti\".</p>");
break;
default:
strBody += wxT("<p><b>Non e' stata rilevata alcuna chiave hardware installata sul computer!</b></p>");
strBody += wxT("<p>Per procedere all'installazione della chiave hardware, <b>collegarla al computer e premere il bottone corrispondente</b> alla tipologia della chiave stessa per installarne i driver.</p>");
@ -750,6 +764,7 @@ bool CampoWizardPage4::TransferDataToWindow()
FindWindowById(402)->Enable();
FindWindowById(403)->Enable();
FindWindowById(404)->Enable();
FindWindowById(405)->Enable();
break;
}
@ -803,16 +818,25 @@ int CampoWizardPage4::DongleTest()
if (serno == 0xFFFF)
{
serno = HardlockLogin(yearKey);
if (serno == 0xFFFF)
{
serno = EutronLogin(yearKey);
if (serno != 0xFFFF)
dongle_type = 2; //chiave eutron
}
else
dongle_type = 1; //chiave hardlock
if (serno != 0xFFFF)
dongle_type = 1; //chiave hardlock
}
if (serno == 0xFFFF)
{
serno = EutronLogin(yearKey);
if (serno != 0xFFFF)
dongle_type = 2; //chiave eutron
}
if (serno == 0xFFFF)
{
serno = SSALogin(yearKey);
if (serno != 0xFFFF)
dongle_type = 4; //chiave software
}
return dongle_type;
}
@ -829,7 +853,7 @@ CampoWizardPage4::CampoWizardPage4(wxWizard* parent) : CampoWizardPage(parent)
//Hardlock label
AddLabel(gbsButtSizer, "Installa chiave locale di tipo Hardlock", 0, 0);
//Hardlock image
wxBitmap bmp_HL("../../campo/servers/hardlock.gif", wxBITMAP_TYPE_GIF);
wxBitmap bmp_HL("hardlock.gif", wxBITMAP_TYPE_GIF);
wxStaticBitmap* s_bmp_HL = new wxStaticBitmap(this, wxID_ANY, bmp_HL);
gbsButtSizer->Add(s_bmp_HL, wxGBPosition(0, 1));
//bottone Hardlock
@ -840,7 +864,7 @@ CampoWizardPage4::CampoWizardPage4(wxWizard* parent) : CampoWizardPage(parent)
//Eutron label
AddLabel(gbsButtSizer, "Installa chiave locale di tipo Eutron", 1, 0);
//Eutron image
wxBitmap bmp_EU("../../campo/servers/eutron.gif", wxBITMAP_TYPE_GIF);
wxBitmap bmp_EU("eutron.gif", wxBITMAP_TYPE_GIF);
wxStaticBitmap* s_bmp_EU = new wxStaticBitmap(this, wxID_ANY, bmp_EU);
gbsButtSizer->Add(s_bmp_EU, wxGBPosition(1, 1));
//bottone Eutron
@ -848,14 +872,25 @@ CampoWizardPage4::CampoWizardPage4(wxWizard* parent) : CampoWizardPage(parent)
gbsButtSizer->Add(bEuButton, wxGBPosition(1, 2), wxDefaultSpan, wxALIGN_CENTER_VERTICAL);
//terza riga della griglia
//SSA label
AddLabel(gbsButtSizer, "Installa licenza software", 2, 0);
//SSA image
wxBitmap bmp_SSA("ssa.gif", wxBITMAP_TYPE_GIF);
wxStaticBitmap* s_bmp_SSA = new wxStaticBitmap(this, wxID_ANY, bmp_SSA);
gbsButtSizer->Add(s_bmp_SSA, wxGBPosition(2, 1));
//bottone Eutron
wxButton* bSSAButton = new wxButton(this, 405, wxT("SSA"), wxDefaultPosition, wxSize(64, -1));
gbsButtSizer->Add(bSSAButton, wxGBPosition(2, 2), wxDefaultSpan, wxALIGN_CENTER_VERTICAL);
//ultima riga della griglia
//Server label
AddLabel(gbsButtSizer, "Nome o indirizzo IP del server di autorizzazioni", 2, 0);
AddLabel(gbsButtSizer, "Nome o indirizzo IP del server di autorizzazioni", 3, 0);
//nome Server
wxTextCtrl* tcSrvName = new wxTextCtrl(this, 404, "", wxDefaultPosition, wxSize(128,-1));
gbsButtSizer->Add(tcSrvName, wxGBPosition(2, 1));
gbsButtSizer->Add(tcSrvName, wxGBPosition(3, 1));
//bottone Eutron
wxButton* bSrvButton = new wxButton(this, 403, wxT("Cerca"), wxDefaultPosition, wxSize(64, -1));
gbsButtSizer->Add(bSrvButton, wxGBPosition(2, 2), wxDefaultSpan, wxALIGN_CENTER_VERTICAL);
gbsButtSizer->Add(bSrvButton, wxGBPosition(3, 2), wxDefaultSpan, wxALIGN_CENTER_VERTICAL);
}
@ -1483,17 +1518,10 @@ bool CampoWizardPage9::TransferDataToWindow()
bool bChkTeleass = false;
if (FindReseller() <= 0)
{
bChkTeleass = true;
const wxString strWinProgDir = GetWindowsProgramDirectory();
wxString strUVNCDir = strWinProgDir + "/UltraVNC";
wxDir dirUVNCDir(strUVNCDir);
if (dirUVNCDir.Exists(strUVNCDir))
{
wxFileName fnFileToCheck(strUVNCDir, "winvnc");
fnFileToCheck.SetExt("exe");
if (fnFileToCheck.FileExists())
bChkTeleass = false;
}
const wxString strTVDir = GetWindowsProgramDirectory() + "/TeamViewer/Version5";
wxFileName fnFileToCheck(strTVDir, "TeamViewer");
fnFileToCheck.SetExt("exe");
bChkTeleass = !fnFileToCheck.FileExists();
}
Set(902, bChkTeleass);
@ -1506,13 +1534,12 @@ bool CampoWizardPage9::TransferDataToWindow()
strBody += wxT("<p>E' possibile creare l'icona di PRODUCT sul desktop.</p>");
if (FindReseller() <= 0 && !bInstDemoVersion)
{
strBody += wxT("<p>E' possibile installare il programma di teleassistenza UltraVNC. E' il software che consente");
strBody += wxT("<p>E' possibile installare il programma di teleassistenza TeamViewer. E' il software che consente");
strBody += wxT(" ai tecnici dell'assistenza di controllare il computer su cui si installa PRODUCT in caso di problemi gravi.");
strBody += wxT(" Se la casella risulta NON spuntata in automatico il programma di teleassistenza e' gia' presente");
strBody += wxT(" sul computer e non deve essere reinstallato.</p>");
}
//è stato inopinatamente scelto di installare la DEMO
if (bInstDemoVersion)
{
@ -1546,7 +1573,7 @@ bool CampoWizardPage9::ForwardValidate()
const bool bInstallTeleass = GetBool(902);
if (bInstallTeleass)
{
wxString strPath("../../teleassistenza/UltraVNC_105_Setup_W32.exe");
wxString strPath("../../teleassistenza/TeamViewerQS_it.exe");
wxExecute(strPath, wxEXEC_SYNC);
}
@ -1565,10 +1592,6 @@ CampoWizardPage9::CampoWizardPage9(wxWizard* parent) : CampoWizardPage(parent)
if (FindReseller() > 0)
pTeleass->Hide();
//wxCheckBox* pLink = new wxCheckBox(this, 1002, wxT("Associare i file .caz al programma"));
//pLink->SetValue(true);
//GetSizer()->Add(pLink, 0, wxALL, 0);
}
@ -1721,7 +1744,7 @@ bool CampoWizardPage10::TransferDataToWindow()
strBody += wxT("<p>Installazione area dati dimostrativa</p>");
if (_bDesktopShortcut)
strBody += wxT("<p>Creazione dell' icona sul desktop</p>");
strBody += wxT("<p>Creazione dell'icona sul desktop</p>");
SetHTMLText(strTitle, strBody);