MCE Controller v1.0.1 Released!

Today I released the first public version of MCE Controller.

MCE Controller allows the Media Center application of Windows Media Center Edition (MCE) to be integrated into an advanced AV control system by enabling programmatic control of the user interface via a TCP/IP connection.

To put it simply, MCE Controller, allows you to simulate a press of any button on the MCE IR remote control by sending a text command to a TCP/IP port on the MCE machine. For example if MCE Controller receives the string “mypictures” it will tell Media Center to go to the “My Pictures” page.

I wrote MCE Controller so I could better integrate MCE into my Crestron whole-house audio/video system. I originally was using IR blasting to control MCE from Creston, but had reliability problems and wanted something more robust. I then tried using Girder ( and was able to cobble together a solution using Girder’s iserver TCP/IP functionality. However Girder’s iserver add-in requires an MD5 hash for authentication and it was too much a pain to implement in Crestron’s SIMPL system.

Plus, I really wanted to get my hands dirty and write a C# app. See

I spent too much time while on vacation skiing in Colorado hacking this app together (on the plane and at night). But it was fun. In the end I’ve produced what I think might be a very useful app for people trying to integrate MCE into their home control systems. In fact, MCE Controller may be useful for anyone trying to integrate any PC based application into such a system. The app is general enough that it can be utilized from any control system that supports sending text strings to a TCP/IP port.

MCE Controller can act as either a TCP/IP client or server. When acting as a client the target host and port can be configured. When acting as a server the incoming port can be configured.

So here it is: I’d love to hear any feedback people have.

© Charlie Kindel. All Rights Reserved.


Comment on this post

This site uses Akismet to reduce spam. Learn how your comment data is processed.