This commit is contained in:
DavidXanatos 2022-07-24 15:30:54 +02:00
parent 1a0cf442c1
commit 28ae06c8d5
7 changed files with 1067 additions and 1388 deletions

View File

@ -5,14 +5,18 @@ This project adheres to [Semantic Versioning](http://semver.org/).
## [1.2.5b / 5.57.5] - 2022-07-22
## [1.2.6 / 5.57.6] - 2022-07-??
### Changed ### Changed
- improved a few icons - the access view list now adds in display the tailing * to file and key paths the same way the driver does [2039](https://github.com/sandboxie-plus/Sandboxie/issues/2039)
- reworked saving of global options
### Fixed ### Fixed
- fixed issue with delete all button [#2043](https://github.com/sandboxie-plus/Sandboxie/issues/2043) - fixed issue with delete all button [#2043](https://github.com/sandboxie-plus/Sandboxie/issues/2043)
- fixed issue with box prefs [#2046](https://github.com/sandboxie-plus/Sandboxie/issues/2046) - fixed issue with box prefs [#2046](https://github.com/sandboxie-plus/Sandboxie/issues/2046)
- fixed issue with Delete V2 registry
@ -26,6 +30,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- fixed certificate validation issue - fixed certificate validation issue
## [1.2.4 / 5.57.4] - 2022-07-21 ## [1.2.4 / 5.57.4] - 2022-07-21
### Added ### Added

View File

@ -493,6 +493,10 @@ SBIE2223 To increase the file size limit for copying files, please double-click
SBIE2224 Sandboxed program has crashed: %2 SBIE2224 Sandboxed program has crashed: %2
. .
2225;pop;wrn;01
SBIE2225 Tried to access an EFS file: %2
.
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
# SbieDrv # SbieDrv
# #

View File

@ -323,7 +323,7 @@ SBIE2102 Fichier trop gros pour le bac à sable - %2
. .
2103;pop;inf;01 2103;pop;inf;01
SBIE2103 Échec au chargement du pilote système '%2' SBIE2103 Échec au chargement du pilote système « %2 »
. .
2104;pop;inf;02 2104;pop;inf;02
@ -335,11 +335,11 @@ SBIE2104 Échec à la fermeture de cette session Windows - %2
# . # .
# 2106;pop;inf;01 # 2106;pop;inf;01
# SBIE2106 Veuillez activer « Exécuter comme Administrateur UAC » dans Sandboxie Control, menu Fichier # SBIE2106 Veuillez activer « Exécuter en tant qu'administrateur UAC » dans Sandboxie Control, menu Fichier
# . # .
# 2107;pop;inf;01 # 2107;pop;inf;01
# SBIE2107 Préparation assemblage WinSxS « %2 » # SBIE2107 Préparation de l'assemblage WinSxS « %2 »
# . # .
2108;pop;inf;01 2108;pop;inf;01
@ -694,7 +694,7 @@ SBIE9234 Erreur de démarrage du service %2
. .
3003;txt;01 3003;txt;01
&Naviguer... &Parcourir...
. .
3004;txt;01 3004;txt;01
@ -726,11 +726,11 @@ Démarrage de Sandboxie
. .
3103;txt;01 3103;txt;01
Tapez le nom du programme et Sandboxie l'ouvrira pour vous. Saisissez le nom d'un programme ou d'un dossier et Sandboxie l'ouvrira pour vous.
. .
3104;txt;01 3104;txt;01
Tapez « . » (le caractère « point ») pour explorer avec Sandboxie. Saisissez « . » (le caractère « point ») pour lancer l'explorateur Windows dans Sandboxie.
. .
3105;txt;01 3105;txt;01
@ -750,7 +750,7 @@ Bureau
. .
3113;txt;01 3113;txt;01
(explorer le dossier) (parcourir le dossier)
. .
# should match the localized folder name for Programs in the Start Menu folder # should match the localized folder name for Programs in the Start Menu folder
@ -1063,7 +1063,7 @@ Désactiver les programmes &forcés
. .
3414;txt;01 3414;txt;01
Exécuter comme Administrateur &UAC Exécuter en tant qu'administrateur &UAC
. .
3415;txt;01 3415;txt;01
@ -1671,8 +1671,8 @@ En cliquant sur OK, le mécanisme de forçage des programmes sera temporairement
. .
3599;txt;01 3599;txt;01
Vous pouvez désactiver le forçage d'un programme en maintenant enfoncé la touche « Ctrl », Vous pouvez désactiver le forçage d'un programme en maintenant enfoncées les touches « Ctrl » et
« Maj » et « Flèche du bas » quand vous cliquez sur « Exécuter dans un bac à sable » pour ce programme. « Maj » quand vous cliquez sur « Exécuter dans un bac à sable » pour ce programme.
. .
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------

View File

@ -460,6 +460,52 @@ void CSettingsWindow::UpdateCert()
} }
} }
void CSettingsWindow::WriteAdvancedCheck(QCheckBox* pCheck, const QString& Name, const QString& OnValue, const QString& OffValue)
{
//if (pCheck->checkState() == Qt::PartiallyChecked)
// return;
if (!pCheck->isEnabled())
return;
SB_STATUS Status;
if (pCheck->checkState() == Qt::Checked)
{
if(!OnValue.isEmpty())
Status = theAPI->GetGlobalSettings()->SetText(Name, OnValue);
else
Status = theAPI->GetGlobalSettings()->DelValue(Name);
}
else if (pCheck->checkState() == Qt::Unchecked)
{
if (!OffValue.isEmpty())
Status = theAPI->GetGlobalSettings()->SetText(Name, OffValue);
else
Status = theAPI->GetGlobalSettings()->DelValue(Name);
}
if (!Status)
throw Status;
}
void CSettingsWindow::WriteText(const QString& Name, const QString& Value)
{
SB_STATUS Status;
if(Value.isEmpty())
Status = theAPI->GetGlobalSettings()->DelValue(Name);
else
Status = theAPI->GetGlobalSettings()->SetText(Name, Value);
if (!Status)
throw Status;
}
void CSettingsWindow::WriteTextList(const QString& Setting, const QStringList& List)
{
SB_STATUS Status = theAPI->GetGlobalSettings()->UpdateTextList(Setting, List, false);
if (!Status)
throw Status;
}
void CSettingsWindow::SaveSettings() void CSettingsWindow::SaveSettings()
{ {
theConf->SetValue("Options/UiLanguage", ui.uiLang->currentData()); theConf->SetValue("Options/UiLanguage", ui.uiLang->currentData());
@ -536,35 +582,24 @@ void CSettingsWindow::SaveSettings()
if (theAPI->IsConnected()) if (theAPI->IsConnected())
{ {
if (ui.fileRoot->text().isEmpty()) try
theAPI->GetGlobalSettings()->DelValue("FileRootPath"); //ui.fileRoot->setText("\\??\\%SystemDrive%\\Sandbox\\%USER%\\%SANDBOX%"); {
else WriteText("FileRootPath", ui.fileRoot->text()); //ui.fileRoot->setText("\\??\\%SystemDrive%\\Sandbox\\%USER%\\%SANDBOX%");
theAPI->GetGlobalSettings()->SetText("FileRootPath", ui.fileRoot->text()); WriteAdvancedCheck(ui.chkSeparateUserFolders, "SeparateUserFolders", "", "n");
theAPI->GetGlobalSettings()->SetBool("SeparateUserFolders", ui.chkSeparateUserFolders->isChecked()); WriteText("KeyRootPath", ui.regRoot->text()); //ui.regRoot->setText("\\REGISTRY\\USER\\Sandbox_%USER%_%SANDBOX%");
WriteText("IpcRootPath", ui.ipcRoot->text()); //ui.ipcRoot->setText("\\Sandbox\\%USER%\\%SANDBOX%\\Session_%SESSION%");
if (ui.regRoot->text().isEmpty())
theAPI->GetGlobalSettings()->DelValue("KeyRootPath"); //ui.regRoot->setText("\\REGISTRY\\USER\\Sandbox_%USER%_%SANDBOX%");
else
theAPI->GetGlobalSettings()->SetText("KeyRootPath", ui.regRoot->text());
if (ui.ipcRoot->text().isEmpty())
theAPI->GetGlobalSettings()->DelValue("IpcRootPath"); //ui.ipcRoot->setText("\\Sandbox\\%USER%\\%SANDBOX%\\Session_%SESSION%");
else
theAPI->GetGlobalSettings()->SetText("IpcRootPath", ui.ipcRoot->text());
theAPI->GetGlobalSettings()->SetBool("NetworkEnableWFP", ui.chkWFP->isChecked());
theAPI->GetGlobalSettings()->SetBool("EnableObjectFiltering", ui.chkObjCb->isChecked());
theAPI->GetGlobalSettings()->SetBool("EnableWin32kHooks", ui.chkWin32k->isChecked());
theAPI->GetGlobalSettings()->SetBool("SandboxieLogon", ui.chkSbieLogon->isChecked());
WriteAdvancedCheck(ui.chkWFP, "NetworkEnableWFP", "y", "");
WriteAdvancedCheck(ui.chkObjCb, "EnableObjectFiltering", "", "n");
WriteAdvancedCheck(ui.chkWin32k, "EnableWin32kHooks", "", "n");
WriteAdvancedCheck(ui.chkSbieLogon, "SandboxieLogon", "", "n");
if (m_FeaturesChanged) { if (m_FeaturesChanged) {
m_FeaturesChanged = false; m_FeaturesChanged = false;
theAPI->ReloadConfig(true); theAPI->ReloadConfig(true);
} }
theAPI->GetGlobalSettings()->SetBool("EditAdminOnly", ui.chkAdminOnly->isChecked()); WriteAdvancedCheck(ui.chkAdminOnly, "EditAdminOnly", "y", "");
bool isPassSet = !theAPI->GetGlobalSettings()->GetText("EditPassword", "").isEmpty(); bool isPassSet = !theAPI->GetGlobalSettings()->GetText("EditPassword", "").isEmpty();
if (ui.chkPassRequired->isChecked()) if (ui.chkPassRequired->isChecked())
@ -579,13 +614,13 @@ void CSettingsWindow::SaveSettings()
else if (isPassSet) else if (isPassSet)
theAPI->LockConfig(QString()); // clear password theAPI->LockConfig(QString()); // clear password
theAPI->GetGlobalSettings()->SetBool("ForceDisableAdminOnly", ui.chkAdminOnlyFP->isChecked()); WriteAdvancedCheck(ui.chkAdminOnlyFP, "ForceDisableAdminOnly", "y", "");
theAPI->GetGlobalSettings()->SetBool("ForgetPassword", ui.chkClearPass->isChecked()); WriteAdvancedCheck(ui.chkClearPass, "ForgetPassword", "y", "");
if (m_WarnProgsChanged) if (m_WarnProgsChanged)
{ {
theAPI->GetGlobalSettings()->SetBool("StartRunAlertDenied", ui.chkStartBlock->isChecked()); WriteAdvancedCheck(ui.chkStartBlock, "StartRunAlertDenied", "y", "");
theAPI->GetGlobalSettings()->SetBool("NotifyStartRunAccessDenied", ui.chkStartBlockMsg->isChecked()); WriteAdvancedCheck(ui.chkStartBlockMsg, "NotifyStartRunAccessDenied", "", "n");
QStringList AlertProcess; QStringList AlertProcess;
QStringList AlertFolder; QStringList AlertFolder;
@ -600,8 +635,8 @@ void CSettingsWindow::SaveSettings()
} }
} }
theAPI->GetGlobalSettings()->UpdateTextList("AlertProcess", AlertProcess, false); WriteTextList("AlertProcess", AlertProcess);
theAPI->GetGlobalSettings()->UpdateTextList("AlertFolder", AlertFolder, false); WriteTextList("AlertFolder", AlertFolder);
m_WarnProgsChanged = false; m_WarnProgsChanged = false;
} }
@ -624,11 +659,16 @@ void CSettingsWindow::SaveSettings()
} }
} }
theAPI->GetGlobalSettings()->UpdateTextList("Template", Used, false); WriteTextList("Template", Used);
theAPI->GetGlobalSettings()->UpdateTextList("TemplateReject", Rejected, false); WriteTextList("TemplateReject", Rejected);
m_CompatChanged = false; m_CompatChanged = false;
} }
} }
catch (SB_STATUS Status)
{
theGUI->CheckResults(QList<SB_STATUS>() << Status);
}
}
if (ui.chkAutoRoot->isVisible()) if (ui.chkAutoRoot->isVisible())
theConf->SetValue("Options/PortableRootDir", CSettingsWindow__Chk2Int(ui.chkAutoRoot->checkState())); theConf->SetValue("Options/PortableRootDir", CSettingsWindow__Chk2Int(ui.chkAutoRoot->checkState()));
@ -751,7 +791,7 @@ void CSettingsWindow::apply()
void CSettingsWindow::ok() void CSettingsWindow::ok()
{ {
SaveSettings(); apply();
this->close(); this->close();
} }

View File

@ -122,7 +122,13 @@ protected:
bool m_CompatChanged; bool m_CompatChanged;
bool m_FeaturesChanged; bool m_FeaturesChanged;
bool m_CertChanged; bool m_CertChanged;
private: private:
void WriteAdvancedCheck(QCheckBox* pCheck, const QString& Name, const QString& OnValue, const QString& OffValue);
void WriteText(const QString& Name, const QString& Value);
void WriteTextList(const QString& Setting, const QStringList& List);
Ui::SettingsWindow ui; Ui::SettingsWindow ui;
}; };

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff