Как получить заголовок активного окна в консоли?

147
12 февраля 2018, 01:17

Какие есть способы получения заголовков из всех истоков ( браузеры, текстовики и.т.п).

Answer 1

Получилось сделать что-то вроде этого :) Работает нормально.

internal class Program
{
  [STAThread]
  private static void Main()
  {
     Console.WriteLine(GetWindow());
  }
  private static bool GetWindow()
  {
     var capacity = 256;
     var sb = new StringBuilder(capacity);
     while (true)
     {
        capacity = (int)SendMessage(GetForegroundWindow(), WM_GETTEXTLENGTH, IntPtr.Zero, IntPtr.Zero) + 1 /* \0 char */;
        if (sb.Capacity < capacity)
        {
            sb = new StringBuilder(capacity);
        }
        else
        {
            sb.Clear();
        }
        capacity = (int)SendMessage(GetForegroundWindow(), WM_GETTEXT, (IntPtr)sb.Capacity, sb);
        Console.Clear();
        Console.WriteLine(sb.ToString(0, capacity));
        Thread.Sleep(300);
    }
  }
     private const uint WM_GETTEXT = 0x000D;
     private const uint WM_GETTEXTLENGTH = 0x000E;
     [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
     private static extern IntPtr SendMessage(IntPtr hWnd, uint uMsg, IntPtr wParam, IntPtr lParam);
     [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
     private static extern IntPtr SendMessage(IntPtr hWnd, uint uMsg, IntPtr wParam, StringBuilder lParam);
     [DllImport("user32.dll", SetLastError = true)]
     private static extern IntPtr GetForegroundWindow();
}

Но вот вопрос появился: Как сделать чтобы ловил только определённые окна?

Чем можно заменить GetForegroundWindow?

READ ALSO
Новая версия - новое шифрование!

Новая версия - новое шифрование!

Проблема: обновил хром, хочу программным способом получить все логины/пароли

131
Как мне подключиться к мэил ру почте C#

Как мне подключиться к мэил ру почте C#

Как мне подключиться к мэил ру почте C# и получить последнее сообщение желательно без использования платных библиотек

153
List&lt;T&gt; с DisplayName в DataTable

List<T> с DisplayName в DataTable

Добрый деньИмеется следующий код, который хорошо копирует данные из List c DisplayName в DataTable:

151
C# межпроцессное взаимодействие?

C# межпроцессное взаимодействие?

Есть две windows-службы, написанные на C#Первая служит wcf-сервисом для клиентов и обрабатывает всю бизнес-логику

147