Ich möchte, dass dies auf dem Betriebssystem basiert, daher brauche ich keine Internetverbindung oder einen geöffneten Browser usw. Nur etwas, das im Hintergrund passieren kann
Der einfachste Weg, dies zu tun, wäre mit einer Anwendung, aber hier erfahren Sie, wie Sie dies nur mit integrierten Betriebssystembefehlen tun. Ich weiß, dass Sie möchten, dass es ereignisgesteuert ist, aber ich bin mir nicht sicher, wie ich das erreichen soll. Hier ist eine Möglichkeit, den Batteriestand zu überprüfen und dann etwas anderes zu tun, wenn er über / unter einem Schwellenwert liegt.
Sie können einen launchd
Prozess in Betracht ziehen . Dies ist im Grunde eine geplante Aufgabe, die jede x
Minute ausgeführt wird. Sie werden häufig von fortgeschrittenen Benutzern verwendet, sind jedoch nicht allzu schwierig einzurichten. Sie konfigurieren eine geplante Startaufgabe mit einer .plist-Datei, die Sie in dieses Verzeichnis gestellt haben: Auf Macintosh HD\Library\LaunchDaemons
diese Weise strukturieren Sie die .plist-Datei.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Debug</key>
<true/>
<key>ExitTimeOut</key>
<integer>120</integer>
<key>Label</key>
<string>com.me.BatteryInfo</string>
<key>ProgramArguments</key>
<array>
<string>/Users/yourusername/batt.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartInterval</key>
<integer>1800</integer>
</dict>
</plist>
Wenn Sie diese Datei wie com.me.BatteryInfo
im LaunchDaemons
oben genannten Ordner speichern, wird eine geplante Aufgabe erstellt, die alle 30 Minuten ausgeführt wird. Die Zahl 1800
direkt darüber </dict>
gibt die Zeit in Sekunden an, wie oft die Aufgabe ausgeführt werden soll. Hier <string>/Users/yourusername/batt.sh</string>
wird angegeben, welches Skript planmäßig ausgeführt wird. Sie müssen gehen <string>
und </sting>
intakt.
Die Zeile <string>com.me.BatteryInfo</string>
ist der eindeutige Name der geplanten Aufgabe. Wenn Sie mehr als eine erstellen möchten, stellen Sie sicher, dass jede .plist hier einen eindeutigen Namen hat.
Als nächstes müssen Sie den Besitz der .plist in ändern root
. Dies ist als Sicherheitsfunktion erforderlich (um zu verhindern, dass Software / Benutzer geplante böswillige Aufgaben erstellen, nehme ich an). Um den Besitz der Datei zu ändern, sudo chown root \Library\LaunchDaemons\yourtask.plist
ersetzen Sie yourtask.plist durch den tatsächlichen Dateinamen der von Ihnen erstellten .plist. Diese Aufgabe fordert Sie zur Eingabe eines Kennworts auf.
Jetzt müssen Sie das Skript erstellen, das regelmäßig ausgeführt wird. Sie müssen eine .sh-Datei (ein Bash-Skript) erstellen, um dem Computer mitzuteilen, was zu tun ist. Öffnen Sie zum Erstellen einer SH-Datei einen Texteditor für Programmierer, z. B. Sublime Text oder Komodo Edit . Verwenden Sie NICHT Textbearbeitung, da dies häufig Text zu Ihren Dateien hinzufügt, der Ihr Skript beeinträchtigen würde. Textbearbeitung sollte eigentlich nicht für Code verwendet werden.
Erstellen Sie ein Skript (.sh-Datei) mit dem folgenden Code.
#!/bin/sh
percent=$(ioreg -l | awk '$3~/Capacity/{c[$3]=$5}END{OFMT="%.3f";max=c["\"MaxCapacity\""];print(max>0?100*c["\"CurrentCapacity\""]/max:"?")}')
if [ $percent > 95 ]
then
echo 'charged.'
fi
exit 0
Ersetzen Sie sie echo 'charged.'
durch die Terminalbefehle, die Sie ausführen möchten, wenn der Akku aufgeladen ist. open /Applications/Notes.app
öffnet die Notes-Anwendung; Sie können das Verzeichnis ändern, um eine andere Anwendung zu öffnen.
$percent > 95
Dies weist die nächste Zeile an, nur zu laufen, wenn der Akku mehr als 95
aufgeladen ist. Sie können dies nach Belieben ändern. Der Akkuladestand unterscheidet sich hier häufig geringfügig von dem, was in der Menüleiste oben angezeigt wird. Wenn Sie "laufen möchten, wenn der Akku voll aufgeladen ist", empfehle ich, dies als> 95 zu belassen . Wenn Sie möchten, dass die Aufgabe ausgeführt wird, wenn Ihre Batterie beispielsweise unter 20% fällt, ändern Sie sie in$percent < 20
HINWEIS: Da dies eine geplante Aufgabe ist, wird Ihr Skript alle x
paar Minuten ausgeführt. Das heißt, wenn Sie open \Applications\Notes.app
in Ihr Skript einfügen, wird die Notes-Anwendung jede x
Minute gestartet (wenn Ihr Akku aufgeladen ist).
Diese Aufgabe wird auch dann ausgeführt, wenn niemand angemeldet ist.
Ich weiß, dass Sie diese Frage vor einiger Zeit gestellt haben, aber hoffentlich hilft dies jemandem.