Программно проверять, открыта ли данная программа - C#
Формулировка задачи:
Например, мне нужно проверять, открыта ли программа "Media Player", если да, то включать таймер и делать определенные действия....Как сделать проверку активности окна ? Media Player - окно - активна, то включать таймер, если Media Player - окно - неактивно, свёрнуто, то выключить таймер ?
P.S.: Консольное приложение
Решение задачи: «Программно проверять, открыта ли данная программа»
textual
Листинг программы
using System;
using System.Runtime.InteropServices;
using System.Threading;
namespace WinFoc
{
class Program
{
[DllImport("user32.dll")]
public static extern int GetForegroundWindow();
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
static void Main(string[] args)
{
// Имя окна приложения
string App = "AkelPad";
// Цикл проверки
do
{
// Получение дескриптора окна
IntPtr WindowHandle = FindWindow(null, App);
// Проверка является ли активным окно
if (GetForegroundWindow() == (int)WindowHandle)
Console.WriteLine(App + " true");
else
Console.WriteLine(App + " false");
Thread.Sleep(1000); // здесь пауза между опросами
// вместо или после нее может быть счетчик
} while (true);
}
}
}