Charlie Kindel edited this page Apr 16, 2017 · 22 revisions

MCE Controller

Clone this wiki locally

MCE Controller

By Charlie Kindel (@ckindel on Twitter) -- Copyright © 2017 Kindel Systems, LLC.

MCE Controller


Click Here To download the Latest MCE Controller Installer


Read full documentation here.


MCE Controller lets you control a Windows HTPC (or any PC) over the network. It runs in the background listening on the network (or serial port) for commands. It then translates those commands into actions such as keystrokes, text input, and the starting of programs. Any remote control, home control system, or application that can send text strings via TCP/IP or a serial port can use MCE Controller to control a Windows PC.

For example:

  • The command mcestart will cause the Windows Media Center application to start. This is equivalent to pressing the green button on the Windows remote control.
  • The command maximize will cause the current window to be maximized on the display. This is equivalent to choosing the "Maximize" button on the window's window menu.
  • The command chars:Hello World! will cause the text "Hello World" to be typed, as though it were typed on the keyboard.
  • The command VK_MEDIA___NEXT_TRACK will cause the currently running media player app (Spotify, Windows Media Player, etc...) to jump to the next media track, just as if the user had pressed the "next track" key on the keyboard.
  • The commands that MCE Controller support is extensible through a configuration file. If it does not natively support a function you wish, you can add new commands easily.

MCE Controller was initially developed to enable integration of a Windows based home theater PC (HTPC) into a Crestron whole-house audio/video system. However, it is general enough that others have used it within other control system that support sending text strings to a TCP/IP port. 

MCE Controller works great with any remote control system that supports TCP/IP or RS-232 connections. Examples include:

  • iRule – iRule is an iPhone/iPad app that turns your iPhone/iPad into a universal remote control for your home. See this tutorial on how to use MCE Controller and iRule together.
  • Crestron– Crestron provides high-end/commercial-grade control systems for homes and businesses. Crestron’s systems provide rich support for controlling devices over the network. Integrating MCE Controller with Crestron is as simple as creating a TCP/IP Client in Crestron and defining a buffer with commands.
  • Premise Home Control – Premise (formerly known as SYS) is an extremely sophisticated Windows based home control system. Originally built by some ex-Microsoft people and later sold to Lantronix and then Motorola, Premise is not officially supported, but usage remains strong and there is a great community on www.coccontech.com. MCE Controller works great with Premise.

Below are some of the scenarios users have reported they’ve found MCE Controller useful for:

  • Controlling Windows Media Center. This is what MCE Controller was originally intended for, hence the name (the first version of Windows Media Center shipped with a version of Windows called “Windows Media Center Edition” aka MCE).
  • General Remote PC Management. For example remotely shutting down or restarting a PC.
  • Enhanced XBMC Control. XBMC is an open source competitor to Windows Media Center. It supports it’s own network based control system, but when running on Windows, MCE Controller can be used in conjunction with XBMC to control non-XBMC specific PC functions.


  • Can act as a TCP/IP client or server. Supports any number of simultaneous clients.
  • Can act as a serial server listening on RS-232 COM port.
  • Supports simulating key presses (e.g. Alt-Tab, or Win-S) with SendInput commands.
  • Supports simulating the mouse.
  • Supports simulating Windows messages (e.g. WM_SYSCOMMAND**_ / _**SC___MAXIMIZE) with SendMessage commands.
  • Supports simulating start process commands (e.g. run notepad.exe) with the StartProcess command.
  • Supports simulating changing the window focus with the SetForegroundWindow command.
  • Supports sending text (e.g. simulating typing) with the chars: command.
  • MCEController.commands includes common Windows Media Center commands. It can easily be extended to suit your needs.
  • Supports running multiple instances.
  • Can start minimized as a taskbar icon. This can be changed in Settings...
  • Has a built-in test mode that makes it easy to send commands from an instance of MCE Controller to another.
  • Automatically checks to see if newer versions are available.