Comment récupérer par programme des bundles d'applications en cours d'exécution sous OS X
Sous OS X, récupérer une liste complète des bundles d'applications en cours d'exécution présente un effort considérable défi. Contrairement à l'interrogation des processus en cours d'exécution, qui peut être effectuée à l'aide de sysctl() et KERN_PROC_ALL, la découverte des bundles d'applications correspondants reste difficile à atteindre. Cela apparaît comme un obstacle important pour les applications cherchant à enregistrer le temps d'utilisation ou à mettre en œuvre des fonctionnalités de contrôle parental.
Une approche potentiellement viable consiste à utiliser le moniteur d'activité, qui désigne certains processus avec des icônes et fournit un aperçu de l'origine de leurs applications. Cependant, la réplication de ce comportement par programmation devient une entreprise spécifique au langage.
Solution utilisant les API Swift et Cocoa
Dans le domaine des API Swift et Cocoa, une solution a émergé :
<code class="swift">import Foundation import AppKit // Acquire all running applications let workspace = NSWorkspace.shared let applications = workspace.runningApplications for app in applications { print(app) }</code>
Ici, l'objet "app" représente une instance NSApplication. En exploitant cet objet, l'identifiant du bundle de l'application, l'information recherchée, peut être obtenue sans effort.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!