Beispiel #1
0
 private static extern bool GetWindowInfo(IntPtr hwnd, ref WINDOWINFO pwi);
Beispiel #2
0
 public static GameInfo[] GetRunningGames()
 {
     List<GameInfo> list = new List<GameInfo>();
     foreach (Process process in Process.GetProcesses())
     {
         IntPtr mainWindowHandle = process.MainWindowHandle;
         if (!mainWindowHandle.Equals(IntPtr.Zero) && (IsWindowVisible(mainWindowHandle) && !IsIconic(mainWindowHandle)))
         {
             WINDOWINFO structure = new WINDOWINFO();
             structure.cbSize = (uint) Marshal.SizeOf(structure);
             GetWindowInfo(mainWindowHandle, ref structure);
             GPG.Multiplayer.Client.RECT rcClient = structure.rcClient;
             if (((rcClient.Right - rcClient.Left) >= GetSystemMetrics(SystemMetrics.SM_CXSCREEN)) && ((rcClient.Bottom - rcClient.Top) >= GetSystemMetrics(SystemMetrics.SM_CYSCREEN)))
             {
                 GameInfo item = new GameInfo(process);
                 GPG.Logging.EventLog.WriteLine("Game {0} is running.", new object[] { item });
                 list.Add(item);
             }
         }
     }
     return list.ToArray();
 }