8
votes

Meilleure façon de savoir si l'application est inactive dans Cocoa Mac OSX?

Donc, je construis un programme qui s'exposera sur une exposition d'utilisation publique et j'ai eu une tâche pour faire un état inactif pour cela. Il suffit d'afficher des vidéos aléatoires à partir d'un dossier à l'écran, comme un économiseur d'écran, mais dans l'application.

Alors, quelle est la meilleure façon de vérifier si l'utilisateur est inactif?

Ce que je pense à ce que je pense, c'est une sorte de minuterie globale qui reçoit la réinitialisation de chaque entrée de l'utilisateur et s'il atteint, disons 1 minute, il passe en mode inactif. Y a-t-il de meilleures façons?


1 commentaires

Regardez Cet article couvrant l'utilisation de IOKIT pour lire des utilisateurs Temps de ralenti de iohid.


5 Réponses :


1
votes

Cela pourrait sembler une question idiote; Mais pourquoi pas seulement créer un économiseur d'écran, avec un fusible court?

Vous pouvez écouter le nsnotification nommé @ "com.apple.screensaver.didstart" si vous devez effectuer des réinitialisations ou des nettoyages lorsque l'utilisateur se promène.

edit: Vous pouvez également configurer l'économiseur d'écran; attendez-vous de tirer, puis faites votre propre chose quand il commence, arrêtez l'économiseur d'écran lorsque vous affichez vos propres vidéos; mais la mise en place d'un économiseur d'écran la manière appropriée est probablement une bonne idée.


2 commentaires

Ce serait formidable si là où de bonnes économies d'écran avec la fonctionnalité que je recherchais, je dois mettre des informations personnalisées sur la vidéo de mon application, etc. :(


Vous allez devoir construire cette fonctionnalité quand même; pourrait aussi bien en faire un économiseur d'écran. Faire un économiseur d'écran n'est pas vraiment si difficile; au moins pas dans la mesure où je peux le voir.



2
votes

J'ai trouvé une solution qui utilise le gestionnaire HID, cela semble être le moyen de le faire en cacao. (Il y a une autre solution pour le carbone, mais cela ne fonctionne pas pour le système d'exploitation 64 bits X.)

citant Daniel Reese sur le Place de Dan and Cheryl> blog: xxx < p> Le code a été légèrement modifié, pour la rendre dans la limite de 80 caractères de Stackoverflow.


0 commentaires

1
votes

Jetez un coup d'œil à ukidletimer , peut-être que c'est ce que vous cherchez Pour.


0 commentaires

5
votes

Vous pouvez utiliser cgeventsourcesecondsSincelaSteventType

retourne la durée écoulée depuis le dernier événement d'un événement de quartz la source. xxx


0 commentaires

3
votes

Je développe la réponse de Parag Bafna. Dans qt, vous pouvez faire xxx

Vous devez également ajouter le cadre à votre fichier .pro: xxx

la documentation de la fonction est ici


0 commentaires