Zeitlimits für bestimmte Apps in macOS High Sierra

In macOS High Sierra v 10.13.4 kann ich in der Kindersicherung Folgendes tun :

  • Verbieten Sie die Verwendung bestimmter Apps in der Option „Anwendungen auf diesem Mac beschränken“ auf der Registerkarte „ Apps “ vollständig .
  • Beschränken Sie die gesamte Nutzung des Computers auf der Registerkarte Zeit .

Ich möchte jedoch einschränken, wie lange eine bestimmte App verwendet werden kann. Insbesondere möchte ich die Nutzung eines bestimmten Spiels durch mein Kind auf x Stunden pro Tag beschränken, aber die oben genannten Optionen lassen dies nicht zu.

Gibt es eine Möglichkeit, dies mit macOS selbst zu tun? Wenn nicht, gibt es eine andere Möglichkeit, dies zu tun, entweder mit einer anderen App, über die Befehlszeile oder auf andere Weise?

( Diese ähnliche Frage in Bezug auf Mac OS X 10.10 bezieht sich auf eine App namens Watcher, die jedoch schlechte Kritiken erhalten hat und anscheinend nicht kürzlich aktualisiert wurde .)

Interessante Problemumgehung hier ask.metafilter.com/243437/… . Erstellen Sie grundsätzlich nur mit dieser Anwendung ein neues Konto und verwenden Sie die Kindersicherung, um die Zeit für dieses Konto zu begrenzen. Wenn Ihr Kind die Anwendung verwenden möchte, meldet es sich bei diesem Konto an.
Auch, in welchem ​​​​Ausmaß müssen Sie die Sicherheit haben. Ich habe einige Lösungen in mir, aber sie sind mit einigen Computerkenntnissen leicht zu umgehen. Ich bezweifle, dass Ihr Kind (je nach Alter) in der Lage wäre, es zu umgehen, möchte aber nur sichergehen.
Schließlich, wie viele Spiele? Wenn mehr als 1, benötigen Sie unterschiedliche Zeiten für jeden, die gleiche Zeit für jeden oder einen kumulativen Timer?

Antworten (1)

Hinweis: Ich selbst bin auch ein Kind, hoffentlich sehen mich andere nicht als Verräter, weil ich diese Antwort gegeben habe 🤣🤣

Hier ist der Beginn meiner Bewerbung. Es ist noch in Arbeit. Ich werde sehr bald bearbeiten, um möglicherweise neue Funktionen wie z

  • Remote-Bearbeitung von Einstellungen (wie es Ihnen die Kindersicherung ermöglicht)

  • Möglichkeit, benachrichtigt zu werden, wenn das Kind versucht, die Beschränkung zu umgehen

  • Möglichkeit, die Zeit (Belohnungssystem?) mit einem Elternpasswort zu verlängern

  • Möglichkeit, die Einschränkung vollständig mit dem elterlichen Passwort zu umgehen

  • Mehrere Warnungen

  • Mehr Protokolle

  • Weitere Kommentare im Code

  • LaunchAgent und LaunchDemon

  • Viele weitere Funktionen

Öffnen Sie dies im Skripteditor und exportieren Sie es als schreibgeschützte Anwendung und stellen Sie sicher, dass es geöffnet bleibt, nachdem der Run-Handler deaktiviert ist

Befolgen Sie nach dem Exportieren diese Anleitung, um zu verhindern, dass es im Dock angezeigt wird.

Gehen Sie zum Beenden zum Aktivitätsmonitor, suchen Sie nach dem, unter dem Sie die Anwendung gespeichert haben, und drücken Sie das X in der oberen linken Ecke des Fensters.

 ## Time Limiter - Created by Josh Brown - Created June 8th 2018 - Last Modified June 8th 2018 ##
global applist
global timelimit
global timelimits
global day1
global day2


## Settings ##
set applist to {"Google Chrome", "App Store"} -- Apps to limit
set timelimit to 10 -- time to limit in min, this is cumulative between all application
set alert1 to 5 -- time when to give a warning (great for giving a 5 min warning so they know they should save and wrap up what they are doing)

## Alert Settings ##
set alertme to false
set bypassattempts to 0
set maxbypassattemtps to 3 -- If the kid trys to reopen application after timelimit has expired alert you

## Bypass/Extention Settings ## -- If you would like to give the kid an extesion or bypass the block
set allowbypass to false
set pass1 to ""



set timelimit to timelimit * 60 -- Make into a seconds
set alert1 to alert1 * 60

set timelimits to timelimit

on is_running(appName)
    tell application "System Events" to (name of processes) contains appName
end is_running

on checkapps()
    set x to false
    repeat with a from 1 to length of applist
        set b to item a of applist
        if is_running(b) then
            set x to true
        end if
    end repeat
    return x
end checkapps

on killall()
    tell application "System Events"
        repeat with myProcess in applist
            set theID to (unix id of processes whose name is myProcess)
            try
                do shell script "kill -9 " & theID
            end try
        end repeat
    end tell
end killall

on logme(msg)
    set time1 to do shell script "date"
    do shell script "echo \"" & msg & " " & time1 & "\" >> ~/Library/Logs/Time_Limit.log"
end logme

on checkday()
    if day of (current date) is not equal to day1 then
        set timelimit to timelimit + timelimits
        set day1 to day of (current date)
    end if
end checkday

logme("Begin Timer with Apps List: " & (applist as string))
set day1 to day of (current date)
repeat while 1 = 1
    checkday()
    if checkapps() then
        if timelimit > 0 then
            set timelimit to timelimit - 1
            if timelimit is alert1 then
                logme("Time Left:" & (timelimit as string) & "Displaying alert")
                display notification "Please finsh what you are doing and save your work" with title "Time Limit Almost Up" subtitle ((timelimit * 60) & " Minitues remaing") as string
            end if
        else
            (*
            tell application app1
                quit
            end tell
            delay 20
            *)
            if checkapps() then
                killall()
                logme("App Runnning after Limit, Killing")
            end if
        end if
    end if
    delay 1
end repeat
Sehr schön! Dies könnte sehr gut funktionieren, abgesehen von dem manuellen Schritt, die App täglich neu zu starten, auf den ich früher oder später den Ball fallen lassen muss. Sobald Sie es so ändern, dass dies "einstellen und vergessen" ist, sieht es so aus, als würde es das tun, was erforderlich ist.
@Vincent Ich habe es bearbeitet. Es sollte jetzt das Zeitlimit auf 00:00 Uhr zurücksetzen.
@Vincent Bitte beachten Sie, dass dieses Skript extrem leicht umgangen werden kann. Das Ändern des Datums, das Umbenennen der ausführbaren Datei und das Öffnen usw. werden dieses System umgehen. Ich verlasse mich darauf, dass Ihre Kinder zu jung sind, um das herauszufinden.
Danke, Josh! Sie sind alt genug, um das Programmieren zu lernen, aber sie haben noch kein AppleScript gemacht, also besteht definitiv eine Chance, dass sie herausfinden, wie sie dies umgehen können, aber es wird einige Zeit dauern, bis sie es herausfinden. Wir haben gerade einen neuen Computer bestellt und ich werde ihn dort testen, sobald er ankommt.
@Vincent Ich werde meine Antwort bearbeiten, um Möglichkeiten zu bieten, um zu verhindern, dass sie die Einschränkungen umgehen. Zum Beispiel das Sperren der Systemeinstellungen, damit das Datum nicht ohne Administratorkennwort geändert werden kann, und das Konto nur über eine Leseberechtigungsanwendung verfügen, sodass der Name der ausführbaren Datei nicht geändert werden kann. Sie können auch schreibgeschützt exportieren, um zu verhindern, dass sie den Code ändern.
@Vincent Wie funktioniert das Skript?
@Vincent Hallo?