Как различить два окна с одинаковыми именами при создании макроса - PullRequest
0 голосов
/ 05 апреля 2019

Я реализую макрос с использованием C #, позволяющий щелкать по определенной части окна. Но у меня проблема, когда есть 2 окна с одинаковым именем.

Я на самом деле использую класс WindowsMouseManagement, чтобы сделать это.

Сначала я создаю список со всеми открытыми окнами:

WindowsMouseManagement.EnumWindows(new WindowsMouseManagement.EnumWindowsProc(WindowsMouseManagement.EnumTheWindows), IntPtr.Zero);

public static bool EnumTheWindows(IntPtr hWnd, IntPtr lParam)
        {
            int size = GetWindowTextLength(hWnd);
            if (size++ > 0 && IsWindowVisible(hWnd))
            {
                StringBuilder sb = new StringBuilder(size);
                GetWindowText(hWnd, sb, size);
                //list = list + sb;
                list.Add(sb.ToString());
                Console.WriteLine(sb.ToString());

            }
            return true;
        }

И затем, чтобы получить информацию о положении окна, я использую функцию «FindWindow», например, с приложением «Калькулятор»:

WindowsMouseManagement.FindWindow(null, “calculator”)

Так что мне было интересно, есть ли какое-либо другое решение для получения информации о положении окна, используя PID или что-то еще ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...