This commit is contained in:
DavidXanatos 2024-06-17 22:36:02 +02:00
parent 70e0181b48
commit 611a6fded7
5 changed files with 58 additions and 2 deletions

View File

@ -99,6 +99,11 @@ bool CBoxObject::MakeShortcut(const QString& Target, const QVariantMap& Options)
return CSbieView::CreateShortcutEx(Target, getName(), Name, Options["iconPath"].toString(), Options["iconIndex"].toInt(), Options["workDir"].toString()); return CSbieView::CreateShortcutEx(Target, getName(), Name, Options["iconPath"].toString(), Options["iconIndex"].toInt(), Options["workDir"].toString());
} }
void CSBoxObject::Start(const QString& Command, bool bElevale)
{
m_pIni.objectCast<CSandBox>()->RunStart(Command.isEmpty() ? "run_dialog" : Command, bElevale);
}
void CSBoxObject::ApplyChanges(bool bApply) void CSBoxObject::ApplyChanges(bool bApply)
{ {
CWizardEngine* pEngine = qobject_cast<CWizardEngine*>(parent()); CWizardEngine* pEngine = qobject_cast<CWizardEngine*>(parent());

View File

@ -41,6 +41,8 @@ public:
public slots: public slots:
void Start(const QString& Command, bool bElevale);
void ApplyChanges(bool bApply); void ApplyChanges(bool bApply);
protected: protected:
@ -128,6 +130,10 @@ public:
JSBoxObject(CBoxObject* pObject, CBoxEngine* pEngine) JSBoxObject(CBoxObject* pObject, CBoxEngine* pEngine)
: JBoxObject(pObject, pEngine) {} : JBoxObject(pObject, pEngine) {}
Q_INVOKABLE void start(const QString& Command = QString(), bool bElevale = false) {
QMetaObject::invokeMethod(m_pObject, "Start", Qt::BlockingQueuedConnection, Q_ARG(QString, Command), Q_ARG(bool, bElevale));
}
Q_INVOKABLE void applyChanges(bool bApply = true) { Q_INVOKABLE void applyChanges(bool bApply = true) {
QMetaObject::invokeMethod(m_pObject, "ApplyChanges", Qt::BlockingQueuedConnection, Q_ARG(bool, bApply)); QMetaObject::invokeMethod(m_pObject, "ApplyChanges", Qt::BlockingQueuedConnection, Q_ARG(bool, bApply));
} }

View File

@ -0,0 +1,44 @@
/*
* group: sandboxing
* class: sandboxing
* name: Low FPS in sandboxed Games
* description: This procedure will obtimize the box settings for gaming
*
*/
let form = [
{type: 'box', id: 'box'}
];
let data = wizard.showForm(form, tr('Select which box to optimize.'));
let boxName = data['box'];
let box = sbie.getBox(boxName);
let message = tr('To apply recommended settings press NEXT. \n');
if(!sbie.testFeature('SMod'))
message += tr('\nPlease note that this required preset works only with a valid supporter certificate!');
wizard.showStatus(message, true);
box.setIniValue('SysCallLockDown', 'y');
box.applyChanges();
box.start();
{
sbie.setupTrace();
let form = [
{ id: 'yes', name: tr('Yes'), type: 'radio' },
{ id: 'no', name: tr('No'), type: 'radio' },
];
let ret = wizard.showForm(form, tr('The options has been applied please tryout your game in %1 and indicate if the issue has been resolved.', boxName));
if (ret['yes'] == true) {
wizard.setResult(true);
}
if (ret['no'] == true) {
wizard.setResult(false, 'Webcam mitigation not successfull');
// todo roll back changes
}
}

View File

@ -52,4 +52,4 @@ let ret3 = wizard.showForm(form3, tr('Was the issue resolved?'));
if (ret3['yes'] == true) if (ret3['yes'] == true)
wizard.setResult(true); wizard.setResult(true);
else else
wizard.setResult(false, 'no mitigation worked'); wizard.setResult(false, tr('no mitigation worked'));

View File

@ -10,7 +10,7 @@
let message = tr('To enable webcam support on Windows 11, the isolation level must be reduced. \n'+ let message = tr('To enable webcam support on Windows 11, the isolation level must be reduced. \n'+
'If you want to proceed, please press NEXT and select a sandbox to modify. \n'); 'If you want to proceed, please press NEXT and select a sandbox to modify. \n');
if(!sbie.isCertValid()) if(!sbie.testFeature('AppC'))
message += tr('\nPlease note that this required preset works only with a valid supporter certificate!'); message += tr('\nPlease note that this required preset works only with a valid supporter certificate!');
wizard.showStatus(message, true); wizard.showStatus(message, true);
@ -28,6 +28,7 @@ box.setIniValue('NoSecurityIsolation', 'y');
box.appendIniValue('Template', 'OpenCOM'); box.appendIniValue('Template', 'OpenCOM');
box.setIniValue('DropAdminRights', 'y'); box.setIniValue('DropAdminRights', 'y');
box.applyChanges(); box.applyChanges();
box.start();
{ {
sbie.setupTrace(); sbie.setupTrace();