Гость 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 В 19.02.2018 в 15:37, Test сказал: возвращают - 0 Показать Так же хорошо будет , если будешь использовать функцию GetLastError(); , поддерживается ли эта функция у FindWindow можно посмотреть там же ; ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Test Опубликовано 19 февраля, 2018 Поделиться Опубликовано 19 февраля, 2018 (изменено) В 19.02.2018 в 18:10, IzerodayI сказал: Так же хорошо будет , если будешь использовать функцию GetLastError(); , поддерживается ли эта функция у FindWindow можно посмотреть там же ; ) Показать Возвращает код ошибки - 122, но если ввести на английском название заголовка окна, то дескриптор возвращается, но и ошибка - 122 остается, значит она не влияет, почему именно на русском возвращает 0...... Изменено 19 февраля, 2018 пользователем Test Дополнение. Ссылка на комментарий Поделиться на другие сайты Поделиться
ReWanet Опубликовано 19 февраля, 2018 Поделиться Опубликовано 19 февраля, 2018 В 19.02.2018 в 18:17, Test сказал: почему именно на русском возвращает 0...... Показать Может быть он просто не переваривает кириллицу? Ссылка на комментарий Поделиться на другие сайты Поделиться
IzerodayI Опубликовано 19 февраля, 2018 Поделиться Опубликовано 19 февраля, 2018 В 19.02.2018 в 18:17, 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 В 19.02.2018 в 18:38, 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 Я же говорю - используй юникод. Ну или действительно делай поиск по имени процесса. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения