Find Media Center Process
// (c) Copyright Damian Mehers http://damianblog.com/ // This source is subject to the Microsoft Public License. // See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx. // All other rights reserved. using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Text; using System.IO; namespace MceFM.Last { public class Util { public static Process FindMediaCenterProcess() { // Could be more than one if an extender is running too foreach (Process process in Process.GetProcessesByName("ehshell")) { if (process.SessionId == Process.GetCurrentProcess().SessionId) { return process; } } return null; } public static bool IsWindowsMediaPlayerRunning() { foreach (Process process in Process.GetProcessesByName("wmplayer")) { if (process.SessionId == Process.GetCurrentProcess().SessionId) { return true; } } return false; } public static bool IsMediaCenterForeground() { Process mediaCenterProcess = FindMediaCenterProcess(); return mediaCenterProcess == null ? false : mediaCenterProcess.MainWindowHandle == GetForegroundWindow(); } public static string ToHexString(byte[] bytes) { StringBuilder sb = new StringBuilder(bytes.Length * 2); foreach (byte b in bytes) { sb.AppendFormat("{0:x2}", b); } return sb.ToString(); } static readonly int port = 2792; static string basePath = "MceFM"; static Util() { // If we are running on an extender if (Environment.UserName.StartsWith("Mcx")) { basePath += "/" + Environment.UserName; } else { basePath += "/" + "Main"; } } public static string GetTraceFileName() { return string.Format("{0}MceFM_{1}.log", Path.GetTempPath(), Process.GetCurrentProcess().Id); } public static string LocalBaseUrl { get { return string.Format("http://localhost:{0}/{1}/", port, basePath); } } public static string ServerStartUrl { get { return string.Format("http://+:{0}/{1}/", port, basePath); } } public static int Port { get { return port; } } public static string BasePath { get { return basePath; } } [DllImport("user32.dll")] static extern IntPtr GetForegroundWindow(); } }