Récupération des bundles d'applications en cours d'exécution dans macOS
La détermination d'une liste d'applications actives dans macOS peut être obtenue en tirant parti des API au niveau du système. Différentes approches sont disponibles, en fonction du niveau de détail souhaité et du langage d'implémentation.
Une méthode consiste à utiliser la fonction sysctl() avec l'argument KERN_PROC_ALL. Cela donne une liste de tous les processus en cours d'exécution, mais ne fournit pas d'informations sur les bundles d'applications correspondants. Par exemple, Minecraft serait simplement étiqueté « java », ce qui n'est pas particulièrement utile.
Une approche plus précise utilise les API Cocoa dans Swift. En interrogeant l'objet NSWorkspace pour les applications en cours d'exécution, il est possible d'accéder aux instances NSApplication représentant chaque application. Chaque objet NSApplication contient un identifiant de bundle, qui fournit les informations souhaitées.
<code class="swift">import Foundation import AppKit // Get all running applications let workspace = NSWorkspace.shared let applications = workspace.runningApplications for app in applications { print(app) }</code>
Cette approche fournit directement les identifiants du bundle d'application, permettant la récupération d'informations spécifiques sur chaque application en cours d'exécution.
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!