Получение свойств запущенной программы - PullRequest
0 голосов
/ 30 мая 2018

Я хотел бы разработать программу, которая идентифицирует карту как ее игра в другой запущенной программе, такой как игра в покер или червы или что-то еще.Я начинаю с того, что пытаюсь получить необходимую информацию об этой игровой программе, которая уже запущена, и у меня возникают проблемы с самого начала.Я использую MSVC ++ 2013 и разрабатываю приложение MFC.Прямо сейчас я играю с игрой Hearts, и вот код:

HWND hwnd =  FindWindowA(NULL, "Hearts");
if (hwnd == NULL)
    {  /* window not found*/
    }
else
    {  /* window was found */
    RECT rect;
    GetWindowRect(hwnd, &rect);
    int width = rect.right - rect.left;
    int height = rect.bottom - rect.top;
    }

Итак, я получаю hwnd очень хорошо, и код работает в зависимости от того, открыт я или нет Hearts.Но строка GetWindowRect(hwnd, &rect); не будет компилироваться, говоря

«ошибка C2660:« CWnd :: GetWindowRect ': функция не принимает 2 аргумента ».

Существует функция GetWindowRect, которая имеет только аргумент rect, но получает свойства окна программы, над которым я работаю.На GetWindowRect есть много документации, которая показывает два аргумента, как указано выше, но как мне вызвать эту подпрограмму?

1 Ответ

0 голосов
/ 30 мая 2018

Поскольку вы находитесь внутри класса окна MFC, вы вызываете функцию CWnd::GetWindowRect - вы хотите вызвать ее в Win32 API, поэтому:

::GetWindowRect(hwnd, &rect);

, где разрешение области действия ::оператор (без пространства имен или имени класса слева) говорит о необходимости вызова функции в глобальной области видимости.

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