Maison  >  Article  >  développement back-end  >  Comment récupérer par programme les bundles d'applications en cours d'exécution sous OS X ?

Comment récupérer par programme les bundles d'applications en cours d'exécution sous OS X ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-31 21:02:29499parcourir

How to Programmatically Retrieve Running Application Bundles in OS X?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn