Ich bin gespannt, wie Timing in der Lage ist zu wissen, wie viel Zeit Sie in einer bestimmten Datei verbringen. Ich verstehe, dass es Accessibility-Berechtigung benötigt, aber danach ist es in der Lage zu erkennen, was derzeit auf dem Bildschirm ist, und den Pfad zu einer bestimmten Datei zugreifen. Ich finde zum Beispiel faszinierend, dass ich weiß, dass ich auf Xcode bin, aber woher weiß ich, dass ich an einer bestimmten Datei innerhalb von Xcode arbeite?Wie Mac OS X Timing-App Dateien verfolgen kann
Antwort
Ich arbeite nicht am Timing, so kann ich nur eine begründete Vermutung darüber, wie ihre App implementiert wurde.
Timing beansprucht drei Hauptdatenpunkte im Auge zu behalten: die Apps, die Sie verwenden, die Websites, die Sie besuchen, und die Dokumente, die Sie bearbeiten.
Für Anwendungen hört Timing wahrscheinlich die NSWorkspaceDidLaunchApplicationNotification
Benachrichtigung, die Informationen zu der gerade gestarteten Anwendung enthält. Um die aktuell geöffneten Anwendungen zu überprüfen, wenn Zeitpunkt gestartet wird, überprüft es wahrscheinlich die Nicht-Hintergrundprozesse von Ereignissystem, möglicherweise wie folgt aus:
osascript -e 'tell application "System Events" to get name of (processes where background only is false)'
(Quelle Get list of running Apps on Mac OS X in Bash?)
für Geschichte, Timing könnte die HTML5 verwenden Verlaufs-API mit Safari (Ich weiß nicht, welche Browser Timing mit dieser Funktion unterstützen möchte), oder einen Ansatz wie Charles Proxy und die Überwachung ein- und ausgehender Pakete und Anforderungen. Die Implementierung kann abhängig davon variieren, ob für das Timing Administratorrechte erforderlich sind.
Für Dokumente könnte Timing den Befehl lsof
verwenden, wie Droppy in ihrem Kommentar vorgeschlagen hat, oder es könnte eine der Apple-Schnittstellen verwenden. Pre-El Capitan, Apple listete neueste Dokumente in einer PLIST-Datei unter dem Pfad ~/Library/Preferences/com.apple.recentitems.plist
auf. In macOS Versionen neuer als El Capitan, können Sie den mdfind
Befehl verwenden und geben Sie den Wert kMDItemContentModificationDate
Dateien zwischen zwei Daten modifiziert zu finden:
mdfind -onlyin $HOME '((kMDItemContentModificationDate > $time.now(-60m)) && (kMDItemContentModificationDate < $time.now()))' | grep -v /Library/
(Quelle Alfred)
- 1. Wie kann ich die Speicherorte von Mac OS X verfolgen?
- 2. Kann Maven Exe-Dateien und Mac OS X-Anwendungen generieren?
- 3. auf Mac OS X
- 4. Den Java Classpath auf Mac OS (Mac OS X) drucken
- 5. Anwendungsaktualisierungen unter Mac OS X
- 6. Qt4Dotnet unter Mac OS X
- 7. TFS auf Mac OS X
- 8. Mac OS X Bluetooth-Programmierbeispiel?
- 9. Mac OS X 10.10 Meldungsfehler
- 10. Mac OS X View Swapping
- 11. Fehler-Tracking-Software für Mac OS X
- 12. Pakete in Mac OS X deinstallieren
- 13. Wie Sie Tastaturkürzel in Mac OS x
- 14. ldconfig für Mac OS X
- 15. mlabwrap Setup Mac OS X
- 16. Mac OS X: Last Durchschnitt
- 17. Unterstützt Mac OS X WPF?
- 18. SetWindowsHookEx für Mac OS X?
- 19. Entpacken Sie die Dateien in Ordnern automatisch [mac os x]
- 20. Wie Mac OS X Wörterbuch in Eklipse
- 21. Excel speichert tabulatorgetrennte Dateien ohne Zeilenumbruch (UNIX/Mac OS X)
- 22. .o Dateien in Linux und Mac OS X
- 23. Wie kann ich eine "Quellenliste" auf Mac OS X erstellen?
- 24. Wie kann ich Apache Ant unter Mac OS X installieren?
- 25. Visual Source Safe auf Mac OS X
- 26. Tesseract: Text2Image nicht gefunden (Mac OS X)
- 27. FreeGLUT auf Mac OS X Löwe
- 28. mongod, Mac OS X - rlimits Warnung
- 29. Kann nicht installiert werden matplotlib unter Mac OS X
- 30. Java System.getProperty ("user.dir") unter Mac OS X
Wahrscheinlich die gleichen APIs wie 'lsof' mit . – Droppy