Гость Test Опубликовано 19 февраля, 2018 Поделиться Опубликовано 19 февраля, 2018 Здравствуйте, не получается получить дескриптор окна(handle), получаю через WIN API функцию "FindWindow". Вот код - #include "Windows.h" #include <iostream> using namespace std; int main() { HWND Handle = FindWindow(NULL, "Калькулятор"); cout << Handle << endl; } Все окна с заголовками на русском языке, возвращают - 0, компилирую через MinGW 6.3.0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 19 февраля, 2018 Поделиться Опубликовано 19 февраля, 2018 Возможно, нужно использовать юникод. Ссылка на комментарий Поделиться на другие сайты Поделиться
IzerodayI Опубликовано 19 февраля, 2018 Поделиться Опубликовано 19 февраля, 2018 2 часа назад, Test сказал: возвращают - 0 Так же хорошо будет , если будешь использовать функцию GetLastError(); , поддерживается ли эта функция у FindWindow можно посмотреть там же ; ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Test Опубликовано 19 февраля, 2018 Поделиться Опубликовано 19 февраля, 2018 (изменено) 12 минут назад, IzerodayI сказал: Так же хорошо будет , если будешь использовать функцию GetLastError(); , поддерживается ли эта функция у FindWindow можно посмотреть там же ; ) Возвращает код ошибки - 122, но если ввести на английском название заголовка окна, то дескриптор возвращается, но и ошибка - 122 остается, значит она не влияет, почему именно на русском возвращает 0...... Изменено 19 февраля, 2018 пользователем Test Дополнение. Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 19 февраля, 2018 Поделиться Опубликовано 19 февраля, 2018 17 минут назад, Test сказал: почему именно на русском возвращает 0...... Может быть он просто не переваривает кириллицу? Ссылка на комментарий Поделиться на другие сайты Поделиться
IzerodayI Опубликовано 19 февраля, 2018 Поделиться Опубликовано 19 февраля, 2018 14 минут назад, Test сказал: код ошибки - 122 Error_122 ошибку можно посмотреть на том же сайте и значит она "The data area passed to a system call is too small." = "Область данных, переданная системному вызову, слишком мала." . Попробуй искать программу по первому параметру - это по-мойму класс приложение , его можно глянуть в Spy++ (приложение идет с visual studio или window-й , не помню , в крайнем случае его можно скачать). Так же можно найти id через такие функции CreateToolhelp32Snapshot , Process32First. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Test Опубликовано 19 февраля, 2018 Поделиться Опубликовано 19 февраля, 2018 7 минут назад, IzerodayI сказал: Error_122 ошибку можно посмотреть на том же сайте и значит она "The data area passed to a system call is too small." = "Область данных, переданная системному вызову, слишком мала." . Попробуй искать программу по первому параметру - это по-мойму класс приложение , его можно глянуть в Spy++ (приложение идет с visual studio или window-й , не помню , в крайнем случае его можно скачать). Так же можно найти id через такие функции CreateToolhelp32Snapshot , Process32First. Тут так вышло, что имя класса тоже на русском языке :))))) Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 20 февраля, 2018 Поделиться Опубликовано 20 февраля, 2018 Я же говорю - используй юникод. Ну или действительно делай поиск по имени процесса. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения