2014-11-06 16 views
5

Buduję aplikację na Maca, którą chcę rozpowszechniać w sklepie z aplikacjami Mac. Potrzebuję tej aplikacji, by mieć funkcję blokady ekranu.Zablokuj ekran MacBooka z aplikacji piaskownicy

Mam 2 różne podejścia działające, problem polega na tym, że jak tylko włączę sandboxing dla aplikacji (która jest wymagana dla sklepu z aplikacjami mac), żadne z tych podejść nie zadziała.

Czy wiesz, jakie uprawnienia muszę prosić? Czy znasz trzecie podejście, które będzie działać z piaskownicą?

Dzięki

Podejścia 1, stosując 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() 

Podejście 2, stosując IORequestIdle (SWIFT):

var r = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/IOResources/IODisplayWrangler") 
if (r > 0) { 
    IORegistryEntrySetCFProperty(r, "IORequestIdle", kCFBooleanTrue) 
    IOObjectRelease(r) 
} 
+0

Jestem zadowolony z rozwiązania Objective-C przy okazji. – saintmac

+0

Jaki jest potrzebny ekran blokady? Prywatność? Ochrona danych? Po co blokować cały komputer Mac, a nie tylko aplikację? Aby zablokować cały Mac, poproś użytkownika o aktywowanie Preferencji systemowych> Zabezpieczenia> "Wymagaj hasła ... po uśpieniu lub wygaszaczu ekranu" i ustaw aktywny róg, aby wejść w tryb uśpienia ekranu/wygaszacza ekranu. Wątpię, żeby to można było zrobić programowo, ponieważ wiąże się to z prawami administratora. –

+0

Ponieważ celem jest zablokowanie mac. Nie aplikacja. Celem jest oferowanie "przycisku blokady", a nie samouczka, jak zablokować mac (co już robimy w międzyczasie). Można to zrobić programowo, ponieważ zrobiliśmy to już z aplikacją z Sandbox tryb. Pytanie brzmi, jak to zrobić w trybie piaskownicy (aby rozpowszechniać aplikację). – saintmac

Odpowiedz

0

Niestety muszę powiedzieć, że nie można zrobić . celem piaskownicy jest zapobieganie pobieraniu całego komputera przez aplikację.

Możesz spróbować uzyskać tymczasowy wyjątek za pośrednictwem kanałów udokumentowanych w przewodniku po piaskownicy.

Powiązane problemy