1.2.6
This commit is contained in:
parent
1a0cf442c1
commit
28ae06c8d5
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
#
|
#
|
||||||
|
|
|
@ -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.
|
||||||
.
|
.
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
Loading…
Reference in New Issue