Здравствуйте, Matveyka, Вы писали:
M>Задача: надо перебрать все окна всех процессов, запущенных в системе и получить доступ к их заголовкам. Как это сделать?
public partial class MainForm : Form
{
[DllImport("user32.dll")]
static extern int GetWindowText(int hWnd, StringBuilder text, int count);
public MainForm()
{
InitializeComponent();
Process[] procs = Process.GetProcesses();
IntPtr hWnd;
foreach (Process proc in procs)
{
if ((hWnd = proc.MainWindowHandle) != IntPtr.Zero)
{
const int chars = 256;
StringBuilder Buff = new StringBuilder(chars);
GetWindowText(hWnd.ToInt32(), Buff, chars);
listBoxDomains.Items.Add(String.Format("{0} : {1}", proc.ProcessName, Buff.ToString()));
}
}
}
}