Le développement d’applications pour Windows Media Center (WMC) est quelque peu facilité avec l’arrivée du SDK 5.3 et ce, même si l’on sent un modèle objet bien lourd derrière. Il n’en reste pas moins qu’avec les technologies .NET il devient plus facile d’exposer les fonctionnalités de Windows Media Center sous la forme de services WCF (Windows Communication Foundation).
Le premier paramètre permet de choisir entre le mode suspendu et le mode hibernation, le second de forcer la machine à passer dans l’état suspendu immédiatement et le troisième de désactiver la possibilité de réveil événementiel de la machine.
Cette partie a de loin été la plus complexe à élaborer. En effet, le modèle objet de Media Center n’offre pas ces services en standard (déplacement Haut, bas, ok, menu TV, etc.). La solution qui m’avait initialement effleuré l’esprit était d’utiliser la classe " SendKeys " afin de simuler les touches du clavier. Malheureusement, ce fut impossible du fait que c’est l’add-in Média Center qui se chargerait d’envoyer les ordres (puisque cet add-in est le processus porteur WCF) et non pas directement la fenêtre Windows. Il m’a donc fallu recréer une classe permettant de réaliser cette opération directement en appelant les API bas-niveau du système d’exploitation.
Frédéric Colin