Ich baue eine Mac App, die ich im Mac App Store verteilen möchte. Ich brauche diese App, um eine Sperrbildschirm-Funktion zu haben.Macbook Bildschirm von einer Sandbox-App sperren
Ich habe zwei verschiedene Ansätze arbeiten, das Problem ist, sobald ich Sandboxing für die App aktivieren (die für den Mac App Store erforderlich ist), keiner dieser Ansätze wird funktionieren.
Wissen Sie, welche Berechtigung ich anfordern muss? Oder kennen Sie einen dritten Ansatz, der mit Sandboxing funktioniert?
Dank
Ansatz 1, mit CGSession (swift):
var arguments = ["-suspend"]
var task = NSTask()
task.arguments = arguments
task.launchPath = "/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession"
task.launch()
Ansatz 2, IORequestIdle (swift) mit:
var r = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/IOResources/IODisplayWrangler")
if (r > 0) {
IORegistryEntrySetCFProperty(r, "IORequestIdle", kCFBooleanTrue)
IOObjectRelease(r)
}
Ich bin übrigens mit einer Objective-C-Lösung zufrieden – saintmac
Was ist der Sperrbildschirm? Privatsphäre? Datenschutz? Warum sperren Sie den gesamten Mac und nicht nur Ihre Anwendung? Um den gesamten Mac zu sperren, bitten Sie den Benutzer, die Systemeinstellungen> Sicherheit> "Kennwort erforderlich ... nach dem Energiesparmodus oder Bildschirmschoner" zu aktivieren und eine aktive Ecke für den Ruhezustand des Bildschirms/Bildschirmschoners festzulegen. Ich bezweifle, dass dies programmatisch erfolgen kann, da es Administratorrechte beinhaltet. –
Weil das Ziel ist, den Mac zu sperren. Nicht die App. Das Ziel ist es, eine "Lock-Taste", kein Tutorial zum Sperren des Mac (was wir schon in der Zwischenzeit tun) Es kann programmgesteuert gemacht werden, weil wir es bereits mit der App aus Sandbox getan haben Modus. Die Frage ist, wie man es im Sandbox-Modus macht (um die App zu verteilen) – saintmac