У меня работает:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace ConsoleApplication13
{
class Program
{
[DllImportAttribute("User32.dll")]
private static extern int FindWindow(String ClassName, String WindowName);
[DllImportAttribute("User32.dll")]
private static extern IntPtr SetForegroundWindow(int hWnd);
static void Main(string[] args)
{
int hWnd = FindWindow(null, "Калькулятор");
Console.WriteLine(hWnd);
if (hWnd > 0)
{
Console.WriteLine("К счастью, окно найдено...");
SetForegroundWindow(hWnd);
}
else
{
Console.WriteLine("Окно не найдено!");
}
Console.ReadKey();
}
}
}
С использованием класса
Process, этот код должен активировать все открытые калькуляторы:
static void Main(string[] args)
{
foreach (var p in Process.GetProcessesByName("calc"))
{
SetForegroundWindow(p.MainWindowHandle.ToInt32());
}
Console.ReadKey();
}