Modifier l'heure de démarrage/activation du mac
Bonjour,
je suis nouveau dans le monde du développement sur mac.
J'ai besoin pour une application de modifier l'heure d'activation du mac, celle que l'on peut modifier via l'interface dans Préférences Système > à‰conomiseur d'énergie > Programmer...
Je me suis penché sur plusieurs solutions :
- via un AppleScript utilisant System Events : trop instable à mon goût
- en allant directement modifier le fichier /Library/Preferences/SystemConfiguration/com.apple.AutoWake.plist : ça me semble bizzar...
et puis je me suis dis qu'il y avait peut-être une solution beaucoup plus simple et donc me voilà
je vous le demande.
Dans la doc, je suis tombé sur "Power Manager Reference" de CoreServices (si j'ai bien compris) avec des fonctions comme SetStartupTimer ou SetWakeupTimer mais elles sont dépréciées et je n'ai pas vraiment compris à quoi elles correspondaient...
J'espère que vous avez compris mon problème et que vous pourrez m'aider. Merci
je suis nouveau dans le monde du développement sur mac.
J'ai besoin pour une application de modifier l'heure d'activation du mac, celle que l'on peut modifier via l'interface dans Préférences Système > à‰conomiseur d'énergie > Programmer...
Je me suis penché sur plusieurs solutions :
- via un AppleScript utilisant System Events : trop instable à mon goût
- en allant directement modifier le fichier /Library/Preferences/SystemConfiguration/com.apple.AutoWake.plist : ça me semble bizzar...
et puis je me suis dis qu'il y avait peut-être une solution beaucoup plus simple et donc me voilà

Dans la doc, je suis tombé sur "Power Manager Reference" de CoreServices (si j'ai bien compris) avec des fonctions comme SetStartupTimer ou SetWakeupTimer mais elles sont dépréciées et je n'ai pas vraiment compris à quoi elles correspondaient...
J'espère que vous avez compris mon problème et que vous pourrez m'aider. Merci

Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tu peux aller te présenter dans le salon.
Peut être sont elles difficiles à comprendre dans l'environnement actuel. Souvent quand une fonction est dépréciée la remplaçante est indiquée. Ici il est conseillé d'aller voir l' I/O kit et plus particulièrement la gestion de l'alimentation, il y a un chapà®tre qui semble t'attendre là bas http://developer.apple.com/library/mac/#DOCUMENTATION/DeviceDrivers/Conceptual/IOKitFundamentals/PowerMgmt/PowerMgmt.html
Aucune idée car je ne sais pas pourquoi tu veux contrôler ça, ici les instructions semblent données dans le but de gérer un pilote, pas forcément ce que tu cherches.
Mais peut être as tu trouvé depuis ?
En tout cas, j'ai trouvé quelque chose dans le framework IOKit :
IOPMCopyScheduledPowerEvents
IOPMSchedulePowerEvent
Avec ça je peux récupérer les valeurs et les modifier.
Par contre, pour la 2eme fonction il faut être en root, donc apparemment créer un bundle qui s'exécutera en root si j'ai bien compris. J'ai trouvé un code d'exemple mais je ne comprends pas bien la création du bundle. Je pense que je reviendrais à la charge dans un nouveau topic pour trouver de l'aide à ce propos.
Voilà , merci à vous en tout cas
Bye
PS: je suis allé me présenter
Secure Coding Guide : Elevating Privileges Safely en particulier Factorying Applications
Je me suis donc lancé dans tout ça. Mais voilà qu'un obstacle s'est déjà dressé
Ma question est :
comment fait-on pour avoir un exécutable dans notre application accessible à l'aide de la classe NSBundle, c'est à dire qui se trouve dans /MonApp.app/Contents/Resources/
J'ai créé un fichier helper.m qui essaye d'écrire dans un fichier dont je n'ai pas les droits, seul l'admin les a.
J'ai créé une nouvelle target appelée helper en choisissant dans la catégorie Cocoa : Shell Tool. J'ai ensuite indiqué que cette target serait la cible de mon helper.m. Et en effet quand je build et que j'éxécute l'exécutable helper une fenêtre terminale s'ouvre et affiche le résultat attendu soit "Permission denied" .
Cependant, cet exécutable n'est pas dans mon répertoire Ressources/ de mon application, ce qui a pour conséquence que quand j'ai cette ligne de code dans mon application :
je m'aperçois que helperPath vaut null. Et donc je ne peux pas tester la fonction AuthorizationExecuteWithPrivileges()
Merci d'avance