Гость Aphex Опубликовано 6 августа, 2014 Поделиться Опубликовано 6 августа, 2014 Доброго, уважаемые! подскажите, какой есть способ с помощью cheat Engine ставить и убирать галочки в программе и каким способом это можно сделать?Есть программа, в ней квадратик, хочу чтобы галочка ставилась и убиралась, с помощью Cheat Engine,а не мышью!Заранее спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 6 августа, 2014 Поделиться Опубликовано 6 августа, 2014 CheckBox в OS Windows это разновидность кнопки.Кнопку мы так же привыкли называть контролом, но в свою очередь контрол в OS Windows является обычным окном.Реализовать твою задумку можно следующим образом на С++:#include <windows.h>#include <iostream>BOOL CALLBACK EnumChildProc( HWND hWnd, // handle дочернего окна (контрола) LPARAM lParam // здесь пользовательский параметр, в нашем случае это указатель на вектор хэндлов){ std::vector<HWND>* wndCheckBoxes = reinterpret_cast< std::vector<HWND>* > (lParam); // приводим LPARAM к нужному нам типу WINDOWINFO info = { 0 }; // инициализруем структуру нулями info.cbSize = sizeof(WINDOWINFO); // инициализируем поле струтруры cbSize, так как оно подлежит обязательному заполнению GetWindowInfo(hWnd, &info); // получаем информацию об окне if (info.dwStyle & BS_CHECKBOX) // если стиль окна содержит BS_CHECKBOX { wndCheckBoxes->push_back(hWnd); // добавляем handle контрола (чекбокса) в наш вектор } return TRUE; // возвращаем TRUE, чтобы продложилось перечисление дочерних окон (и контролов)}void SetCheckBox( HWND hWNd, // handle чекбокса, состояние которого мы хотим изменить bool check // флаг отвечающий, за то, чтобы чекунуть или анчекнуть чекбокс){ if (check) { PostMessage(hWNd, BM_SETCHECK, BST_CHECKED, 0); // поставить галочку } else { PostMessage(hWNd, BM_SETCHECK, BST_UNCHECKED, 0); // снять галочку }}int main(){ HWND hWnd = FindWindow(0, TEXT("заголовок окна")); if (!hWnd) { printf("Can't find window!\n"); Sleep(2000); return 0; } std::vector<HWND> windowCheckBoxes; // объявляем вектор (динамический массив), который будет хранить handle'ы чекбоксов EnumChildWindows(hWnd, &EnumChildProc, reinterpret_cast<LPARAM> (&windowCheckBoxes)); // начинаем поиск check box'ов size_t foundCheckBoxes = windowCheckBoxes.size(); if (foundCheckBoxes) // если количество найденных чекбоксов больше нуля { SetCheckBox(windowCheckBoxes[0], true); // поставить галочку первому найденному чекбоксу (индексация в массиве начинается с нуля) } return 0;}Использованный материал:http://msdn.microsoft.com/ru-ru/library/windows/desktop/ms633499.aspx (FindWindow - поиск окна по классу и/или по заголовку)http://msdn.microsof...p/ms633494.aspx (EnumChildWindows - перечисление всех дочерних окон окна)http://msdn.microsof...p/ms633516.aspx (GetWindowInfo - получение информации об окне)http://msdn.microsof...p/bb775951.aspx (Список стилей кнопок)http://msdn.microsof...p/bb775989.aspx (BM_SETCHECK - сообщение для установки состояния checkbox'а)http://msdn.microsof...p/ms644944.aspx (PostMessage - асинхронная функция отправки сообщения окна)P.S. Код не отлаживал, писал в Notepad'е, но думаю он прекрасно демонстрирует нужный тебе алгоритм. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Aphex Опубликовано 7 августа, 2014 Поделиться Опубликовано 7 августа, 2014 CheckBox в OS Windows это разновидность кнопки.Кнопку мы так же привыкли называть контролом, но в свою очередь контрол в OS Windows является обычным окном.Реализовать твою задумку можно следующим образом на С++:#include <windows.h>#include <iostream>BOOL CALLBACK EnumChildProc( HWND hWnd, // handle дочернего окна (контрола) LPARAM lParam // здесь пользовательский параметр, в нашем случае это указатель на вектор хэндлов){ std::vector<HWND>* wndCheckBoxes = reinterpret_cast< std::vector<HWND>* > (lParam); // приводим LPARAM к нужному нам типу WINDOWINFO info = { 0 }; // инициализруем структуру нулями info.cbSize = sizeof(WINDOWINFO); // инициализируем поле струтруры cbSize, так как оно подлежит обязательному заполнению GetWindowInfo(hWnd, &info); // получаем информацию об окне if (info.dwStyle & BS_CHECKBOX) // если стиль окна содержит BS_CHECKBOX { wndCheckBoxes->push_back(hWnd); // добавляем handle контрола (чекбокса) в наш вектор } return TRUE; // возвращаем TRUE, чтобы продложилось перечисление дочерних окон (и контролов)}void SetCheckBox( HWND hWNd, // handle чекбокса, состояние которого мы хотим изменить bool check // флаг отвечающий, за то, чтобы чекунуть или анчекнуть чекбокс){ if (check) { PostMessage(hWNd, BM_SETCHECK, BST_CHECKED, 0); // поставить галочку } else { PostMessage(hWNd, BM_SETCHECK, BST_UNCHECKED, 0); // снять галочку }}int main(){ HWND hWnd = FindWindow(0, TEXT("заголовок окна")); if (!hWnd) { printf("Can't find window!\n"); Sleep(2000); return 0; } std::vector<HWND> windowCheckBoxes; // объявляем вектор (динамический массив), который будет хранить handle'ы чекбоксов EnumChildWindows(hWnd, &EnumChildProc, reinterpret_cast<LPARAM> (&windowCheckBoxes)); // начинаем поиск check box'ов size_t foundCheckBoxes = windowCheckBoxes.size(); if (foundCheckBoxes) // если количество найденных чекбоксов больше нуля { SetCheckBox(windowCheckBoxes[0], true); // поставить галочку первому найденному чекбоксу (индексация в массиве начинается с нуля) } return 0;}Использованный материал:http://msdn.microsof...p/ms633499.aspx (FindWindow - поиск окна по классу и/или по заголовку)http://msdn.microsof...p/ms633494.aspx (EnumChildWindows - перечисление всех дочерних окон окна)http://msdn.microsof...p/ms633516.aspx (GetWindowInfo - получение информации об окне)http://msdn.microsof...p/bb775951.aspx (Список стилей кнопок)http://msdn.microsof...p/bb775989.aspx (BM_SETCHECK - сообщение для установки состояния checkbox'а)http://msdn.microsof...p/ms644944.aspx (PostMessage - асинхронная функция отправки сообщения окна)P.S. Код не отлаживал, писал в Notepad'е, но думаю он прекрасно демонстрирует нужный тебе алгоритм.Ох уважаемый спасибо огромное..но что куда тыкать....? и если например окно в игре, а там галочку надо ставить и убрать без мышки?! Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 7 августа, 2014 Поделиться Опубликовано 7 августа, 2014 Если я правильно понял, нужно заморозить/разморозить сделанные опции в СЕ?)Если так, то кликаем правой кнопкой мыши на опции - откроется меню, где выбираем "Хоткеи", и там настраиваем, какую кнопку надо нажать, чтобы активировать/деактивировать опцию. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Aphex Опубликовано 7 августа, 2014 Поделиться Опубликовано 7 августа, 2014 Нужно сделать так чтобы в окне ставилась галочка с помощью манипуляций в чит енгине! Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 7 августа, 2014 Поделиться Опубликовано 7 августа, 2014 Похоже, пользователь хочет получить что-то вроде мини-бота для какой-то игры. В этом случае не поможет ни один из описанных выше способов.Попробуй посмотреть Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Aphex Опубликовано 7 августа, 2014 Поделиться Опубликовано 7 августа, 2014 скажем проще в игре чтобы галочку на полноэкранный/оконный режим можно было ставит с помощью чит энджина!там галочку достаточно, Ссылка на комментарий Поделиться на другие сайты Поделиться
Laziz Опубликовано 8 августа, 2014 Поделиться Опубликовано 8 августа, 2014 скажем проще в игре чтобы галочку на полноэкранный/оконный режим можно было ставит с помощью чит энджина!там галочку достаточно,да... умеешь вопросы задавать. Пока читал чуть мозг не сломал. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 8 августа, 2014 Поделиться Опубликовано 8 августа, 2014 Тогда тебе нужно на СЕ делать хук DirectX, затем разбираться в конвейере, какой код отвечает за отрисовку этой галочку, затем искать код, который отвечает за считывание параметра, и его уже модифицировать. Только так. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 8 августа, 2014 Поделиться Опубликовано 8 августа, 2014 Автор смотри эту тему на форуме CE, уберешь не нужное и вставишь галочки Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения