[TRUKéASTUCE] Empêcher le déclenchement du screensaver.

BruBru Membre
Pour empêcher le déclenchement du screensaver lors de l'exécution d'un programme, il suffit d'appeler à  intervalle régulier cette fonction carbon UpdateSystemActivity.

L'exemple ci-dessus créé un timer qui se déclenche toutes les 30 secondes en appelant la méthode desactiveScreenSaver: pour empêcher le fonctionnement du screensaver :

<br />- (void)awakeFromNib<br />{<br />    timer=[NSTimer scheduledTimerWithTimeInterval:30<br />            target:self<br />            selector:@selector(desactiveScreenSaver:)<br />            userInfo:nil<br />            repeats:YES];<br />}<br /><br />- (void)desactiveScreenSaver:(NSTimer *)timer<br />{<br />    OSErr err;<br /><br />    err=UpdateSystemActivity(UsrActivity);<br />}<br />


(référence:Power Management)

.

Réponses

  • ClicCoolClicCool Membre
    12:41 modifié #2
    Salut Bru, :D

    merci pour cette astuce qui semble si simple une fois connue mais pas si évidente (loin s'en faut) quand on est face à  cette question.

    Mais dis moi à  quoi ça peut servir de bloquer le screenSaver si on a pas d'actions chez les fabriquants d'écrans ? ???

    Si t'as trouvé cette astuce c'est sans doute que t'as été confronté à  cette situation. Et, te connaissant, tu devais avoir de bonnes raisons pour vouloir le faire non ?
  • BruBru Membre
    12:41 modifié #3
    dans 1099696430:

    Si t'as trouvé cette astuce c'est sans doute que t'as été confronté à  cette situation. Et, te connaissant, tu devais avoir de bonnes raisons pour vouloir le faire non ?


    En utilisant l'autre astuce (plein écran en cocoa) et en remplaçant dans le code que j'ai mis l'argument NSView par un NSMovieView, tu peux visualiser un quicktime en plein écran en quelques lignes de programmation...

    mais bien entendu, pendant que tu visualises ton film, il ne faudrait pas que le screen saver se déclenche...

    .
  • ClicCoolClicCool Membre
    12:41 modifié #4
    J'étais sur que t'avais une bonne raison ;)

    Merci encore Bru
  • GercofisGercofis Membre
    12:41 modifié #5
    Bien beau tout ça, merci, mais comment je l'arrête ?
  • AntilogAntilog Membre
    12:41 modifié #6
    dans 1203090132:

    Bien beau tout ça, merci, mais comment je l'arrête ?

    [timer invalidate];
  • GercofisGercofis Membre
    12:41 modifié #7
    Merci ça marche même très bien !!

    Par contre j'ai l'impression que du coup il ne se met plus en veille du tout ?
    L'utilisation de cette fonction nécessite le chargeur...

    1°) - S'il n'est pas désactiver le timer resterait-il en activité après avoir quitter ?

    2°) - J'avoue ne pas capter du tout la différence entre les paramètres
    OverallAct = 0,
      UsrActivity = 1,
      NetActivity = 2,
      HDActivity = 3,
      IdleActivity = 4


Connectez-vous ou Inscrivez-vous pour répondre.