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

Comment récupérer par programme les bundles d’applications en cours d’exécution sous macOS ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-01 16:26:31336parcourir

How to Programmatically Retrieve Running Application Bundles in macOS?

Récupérer par programme les bundles d'applications en cours d'exécution dans macOS

Introduction :
L'obtention d'une liste des bundles d'applications en cours d'exécution dans macOS est essentielle pour divers scénarios tels que le suivi du temps, la surveillance des processus et le contrôle parental. Cependant, s'appuyer uniquement sur sysctl() pour récupérer les processus en cours d'exécution peut ne pas fournir suffisamment d'informations sur leurs bundles d'applications associés.

Solution :
Exploiter les API Cocoa dans Swift offre une solution efficace :

<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>

Ce code récupère les objets NSRunningApplication pour chaque application en cours d'exécution, qui contiennent l'identifiant de bundle souhaité.

Considérations supplémentaires :

  • Utilisation de C/Objective-C : des fonctionnalités similaires devraient être possibles à l'aide des API C/Objective-C, bien que l'approche exacte puisse varier.
  • Disponibilité : la prise en charge de NSRunningApplication est disponible dans macOS 10.8 et versions ultérieures.
  • Confidentialité : l'accès aux identifiants du bundle d'applications peut nécessiter des autorisations utilisateur spécifiques.

Avantages de la mise en œuvre :

  • Objectif facile à utiliser - API C
  • Fournit des informations détaillées sur les applications en cours d'exécution
  • Facilite le suivi du temps, la surveillance des processus et d'autres tâches connexes

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