Домой Windows Читаем текст заголовков окон запущенных приложений в Windows: Справочник по C#

Читаем текст заголовков окон запущенных приложений в Windows: Справочник по C#

811
0


      Данная функция пригодится тем, кто работает с другими приложениями, запущенными в Windows. Мне она пригодилась для отправки сообщений и контроля приложения стороннего разработчика.

public const int WM_SYSCOMMAND = 0x0112;
public const int SC_CLOSE = 0xF060;

[DllImport("user32.dll")]
public static extern int FindWindow(
string lpClassName, // class name
string lpWindowName // window name
);

[DllImport("user32.dll")]
public static extern int SendMessage(
int hWnd, // handle to destination window
uint Msg, // message
int wParam, // first message parameter
int lParam // second message parameter
);

[DllImport("user32.dll")]
public static extern int SetForegroundWindow(
int hWnd // handle to window
);
public const int GW_HWNDFIRST = 0;
public const int GW_HWNDLAST = 1;
public const int GW_HWNDNEXT = 2;
public const int GW_HWNDPREV = 3;
public const int GW_OWNER = 4;
public const int GW_CHILD = 5;

public delegate int EnumWindowsProcDelegate(int hWnd, int lParam);

[DllImport("user32")]
public static extern int EnumWindows(EnumWindowsProcDelegate lpEnumFunc, int lParam);

[DllImport("User32.Dll")]
public static extern void GetWindowText(int h, StringBuilder s, int nMaxCount);

[DllImport("user32", EntryPoint = "GetWindowLongA")]
public static extern int GetWindowLongPtr(int hwnd, int nIndex);

[DllImport("user32")]
public static extern int GetParent(int hwnd);

[DllImport("user32")]
public static extern int GetWindow(int hwnd, int wCmd);

[DllImport("user32")]
public static extern int IsWindowVisible(int hwnd);

[DllImport("user32")]
public static extern int GetDesktopWindow();



private void simpleButton2_Click(object sender, EventArgs e)
{
// Получаем дескриптор окна рабочего стола
int nDeshWndHandle = GetDesktopWindow();
// Получаем первое дочернее окно
int nChildHandle = GetWindow(nDeshWndHandle, GW_CHILD);

while (nChildHandle != 0)
{
//Если это дочернее окно то игнорировать.
if (nChildHandle == this.Handle.ToInt32())
{
nChildHandle = GetWindow(nChildHandle, GW_HWNDNEXT);
}

// Получаем только видимые окна
if (IsWindowVisible(nChildHandle) != 0)
{
StringBuilder sbTitle = new StringBuilder(1024);
// Читаем текст заголовка окна и добавляем в listBox
GetWindowText(nChildHandle, sbTitle, sbTitle.Capacity);
String sWinTitle = sbTitle.ToString();
{
if (sWinTitle.Length > 0)
{
listBoxControl1.Items.Add(sWinTitle);
}
}
}
// Переходим к следующему дочернему окну.
nChildHandle = GetWindow(nChildHandle, GW_HWNDNEXT);
}
}


Результат:


ЧИТАТЬ ТАКЖЕ:  Получаем список зарегистрированных расширений в Windows : Справочник по C#

Читаем текст заголовков окон запущенных приложений в Windows: Справочник по C#

0.00 (0%) 0 votes

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь