Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/22: Рейтинг темы: голосов - 22, средняя оценка - 4.55
 Аватар для Laborant666
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848

Оцените приложение. Попробуйте его сломать

01.01.2021, 14:24. Показов 4554. Ответов 35
Метки с++ (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно, прошу потестировать приложение. В случае незапуска, ошибок, отказа работы прошу рассказать, что было сделано, на какой конфигурации пк. В принципе в работе я не сомневаюсь, больше жду идей и советов по улучшению. Суть приложения кликать за вас и оберегать вашу мышь в беспощадных кликерах
 Комментарий модератора 
П.5.18.Правил
Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.
Вложения, ожидающие проверки
Тип файла: zip Сyber Сlick v2.0.zip
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.01.2021, 14:24
Ответы с готовыми решениями:

Оцените мини-приложение
Оцените связку react redux и код в целом, пожалуйста https://gitlab.com/Kir1/react.git п.с вёрстку не делал под мобилу

Rate my app - оцените мое приложение
Добрый день. везде в интернете один и тот же исходник. openURL:]; 1. вопрос что за Purple Software, на который никто не...

Могу ли я скачать приложение с плэй маркета, локализовать его и выложить его в маркет от себя
Доброго дня! Не знал как назвать тему. Я в этом мало понимаю. Опишу свою проблему. Я продаю термостаты. Сейчас купил термостаты с...

35
Искусственный интеллект
 Аватар для NQUARE
112 / 82 / 34
Регистрация: 26.08.2020
Сообщений: 590
Записей в блоге: 1
26.01.2021, 15:40
Студворк — интернет-сервис помощи студентам
Laborant666, Не вот прям конечно, но у меня g++ (x86_64-win32-seh-rev0, Built by MinGW-W64 project) 8.1.0 агрится:
Code
1
2
main.cpp:21:15: warning: passing NULL to non-pointer argument 1 of 'void srand(unsigned int)' [-Wconversion-null]                                               
     srand(NULL);
Думаю надо srand((unsigned int)time(NULL));

Добавлено через 53 минуты
Да и вся программа в целом не очень правильно и кривовато написана. Не работает, виснет после ввода данных. Практически все функции WinAPI не правильно используются. Крч там править и править. Вечером сделаю.
1
фрилансер
 Аватар для Алексей1153
6444 / 5637 / 1128
Регистрация: 11.10.2019
Сообщений: 14,994
26.01.2021, 15:51
Цитата Сообщение от Laborant666 Посмотреть сообщение
потому что если оставить в теле цикла Sleep(10), то итераций цикла будет 100 в секунду всегда, а с моим вариантом слипа будет от одной итерации до двадцати.
Sleep(10) - это означает, что цикл практически вообще не будет нагружать ЦП, так как время будет постоянно отдаваться другим потокам
А в твоём варианте нагрузка будет чуть почти такая же (то есть - никакая), но всё же чуть-чуть побольше, так как будет выполняться деление

Очевидно, что Sleep(10) - выбор очевидный (блин, тавталогия вышла ) . Он проще и "производительнее"
1
 Аватар для Laborant666
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
26.01.2021, 22:02  [ТС]
Цитата Сообщение от NQUARE Посмотреть сообщение
Да и вся программа в целом не очень правильно и кривовато написана. Не работает, виснет после ввода данных. Практически все функции WinAPI не правильно используются. Крч там править и править. Вечером сделаю.
Да? Странно, у меня всё работало хорошо. Косяк по поводу несоответствия выбранных кликов с реальным их количеством (не критично потому и не фикшу), а так стабильно работает
Буду рад глянуть на рефакторинг кода, если можно - комментариев накидать, что на что изменили и почему

Добавлено через 2 минуты
NQUARE, Кстати, криво работает какая версия кода из темы? Код в самой теме один, код в 10м сообщении в обсуждении уже подправленный (там 100% нагрузка на ядро исправлена)

Добавлено через 16 минут
Цитата Сообщение от Алексей1153 Посмотреть сообщение
А в твоём варианте нагрузка будет чуть почти такая же (то есть - никакая), но всё же чуть-чуть побольше, так как будет выполняться деление
Но в Sleep(1000\count_click) значение count_click известно до входа в цикл. Это не избавляет от проблемы рассчета выражения каждую итерацию? Думал раз известны все составляющие рассчета до входа в цикл - обсчет произойдет один раз, а не каждую итерацию. Получается желательно всегда передавать уже готовое значение, даже если в формуле всё известно до входа в цикл?
0
фрилансер
 Аватар для Алексей1153
6444 / 5637 / 1128
Регистрация: 11.10.2019
Сообщений: 14,994
27.01.2021, 07:19
Laborant666, это же не константа (как enum, enum class, constexpr или, не приснись на ночь, макрос ). Оптимизатор может перенести перед циклом, а может и не перенести.
Дело не в этом.
А в том, что по влиянию на быстродействие обе конструкции одинаковы (какие-то микросекунды, если они и будут, никто не заметит). А из одинакового нужно выбирать то, что проще. Проще для написания и для чтения
1
Искусственный интеллект
 Аватар для NQUARE
112 / 82 / 34
Регистрация: 26.08.2020
Сообщений: 590
Записей в блоге: 1
27.01.2021, 14:30
Цитата Сообщение от Laborant666 Посмотреть сообщение
Буду рад глянуть на рефакторинг кода, если можно - комментариев накидать, что на что изменили и почему
Ок, пока руки ещё не доходили. Но у меня комментарии длинные получаются)
Цитата Сообщение от Laborant666 Посмотреть сообщение
Косяк по поводу несоответствия выбранных кликов с реальным их количеством (не критично потому и не фикшу)
Да не, я не про это. У меня даже кликать не начинает, зависает после вывода инструкции. Версия кода последняя, все сообщения читал.

Добавлено через 1 минуту
А зачем кста надо было random делать? Типа чтобы просто эффект был или что?
0
 Аватар для Laborant666
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
27.01.2021, 14:40  [ТС]
Цитата Сообщение от NQUARE Посмотреть сообщение
А зачем кста надо было random делать? Типа чтобы просто эффект был или что?
А это я выпилить забыл часть кода. Прога кликер же, некоторые игры блочат кнопку, если в одном и том же месте кликается слишком часто, вот рандом был сделан для того, что б кликало в радиусе 5 пикселей

Добавлено через 27 секунд
Цитата Сообщение от NQUARE Посмотреть сообщение
У меня даже кликать не начинает, зависает после вывода инструкции.
Странно, у друзей тестировал - работало

Добавлено через 40 секунд
Цитата Сообщение от NQUARE Посмотреть сообщение
Ок, пока руки ещё не доходили. Но у меня комментарии длинные получаются)
Ничего страшного, мне будет интересно узнать где я коряво пишу, всё же профессионально я не обучался

Добавлено через 4 минуты
Цитата Сообщение от NQUARE Посмотреть сообщение
У меня даже кликать не начинает, зависает после вывода инструкции.
Не реагирует программа вообще никак? +\- с нумпада надо жать. В версии кода из 10го сообщения для кликов надо держать постоянно +
0
Искусственный интеллект
 Аватар для NQUARE
112 / 82 / 34
Регистрация: 26.08.2020
Сообщений: 590
Записей в блоге: 1
27.01.2021, 20:25
Цитата Сообщение от Laborant666 Посмотреть сообщение
Не реагирует программа вообще никак? +\- с нумпада надо жать. В версии кода из 10го сообщения для кликов надо держать постоянно +
Нет, вообще никак, полный 0
0
 Аватар для Laborant666
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
27.01.2021, 20:29  [ТС]
Цитата Сообщение от NQUARE Посмотреть сообщение
Нет, вообще никак, полный 0
Хм. А вы из под-винды запускаете?

Добавлено через 1 минуту
Возможно коды клавиш не совпадают у меня и у вас, хотя по идее должны, с других пк стартовала прога
0
Искусственный интеллект
 Аватар для NQUARE
112 / 82 / 34
Регистрация: 26.08.2020
Сообщений: 590
Записей в блоге: 1
27.01.2021, 20:46
Цитата Сообщение от Laborant666 Посмотреть сообщение
Хм. А вы из под-винды запускаете?
Ну канеш.
Цитата Сообщение от Laborant666 Посмотреть сообщение
Возможно коды клавиш не совпадают у меня и у вас, хотя по идее должны, с других пк стартовала прога
Не. Точно нет. Во первых они везде одинаковые (по ASCII таблице) а во вторых я перепробовал ещё некоторые. К стати по ASCII таблице у вас коды не правильные, я недавно тож прогу делал и смотрел код в ASCII для +, он там 46 ли 42 ли, но ни как не 10x.
0
 Аватар для Laborant666
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
27.01.2021, 22:47  [ТС]
NQUARE, GetKeyState работает не по ascii таблице, а именно по кодам клавиш. ASCII это коды символов. Если б я использовал сравнение через kbhit() где по ascii и сравниваешь - окно должно было быть всегда активно.GetKeyState отлавливает нажатия всегда
0
Искусственный интеллект
 Аватар для NQUARE
112 / 82 / 34
Регистрация: 26.08.2020
Сообщений: 590
Записей в блоге: 1
27.01.2021, 23:11
А почему интересно тогда у меня с GetKeyState и ASCII всё норм работало и работает. Хмм...
0
 Аватар для Laborant666
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
28.01.2021, 17:22  [ТС]
Цитата Сообщение от NQUARE Посмотреть сообщение
А почему интересно тогда у меня с GetKeyState и ASCII всё норм работало и работает. Хмм...
Может это особенности среды? Я из VS 2019 запускал и писал. Совершенно не понимаю почему у вас нужны другие коды для работы, не те что работают у меня

Добавлено через 3 минуты
NQUARE, не понимаю, по документации GetKeyState действительно работает через ascii, но у меня работает почему-то через другую таблицу. Я если в параметр вобью код из ascii - у меня GetKeyState не сработает. В ascii есть коды цифро-буквенные, в той таблице, которую я использовал все коды лишь циферные

Добавлено через 5 минут
NQUARE, что самое забавное я делал цикл от 0 до 256 и прогонял его, в цикле было условие вернуть i когда сработает условие if( GetKeyState(i) < 0). И возвращало не значение из ascii

Добавлено через 1 минуту
Мне лень было в таблице значения каждый раз искать, я программку делал, что б зажать клавишу и получить код через секунду. На основе этих кодов и написал код, который у меня работает, а у вас почему-то нет. Что-то по-разному настроено?

Добавлено через 4 часа 34 минуты
NQUARE, проверьте работает у вас этот код?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <Windows.h>
int key = 404;
int main()
{
    std::cout << "Press a key\n";
    Sleep(3000);
 
    for (int d = 0; d < 256; d++)
    {
        if (GetKeyState(d) < 0)
        {
            key = d;
            break;
        }
    }
 
    if (key != 404)
        std::cout << "Code of Key is - " << key << "\n";
    else
        std::cout << "Can`t find a key\n";
 
    Sleep(5000);
 
    return 0;
}
Добавлено через 2 минуты
Я этим кодом находил требуемые коды клавиш для запуска. Минус на нумпаде должен выдать 109, плюс - 107, звездочка - 106. Плюс/равно без шифта на основной клавиатуре - 187, минус/нижний прочерк без шифта на основной - 189. Совпадают ли ваши значения с моими?

Добавлено через 4 минуты
NQUARE, вот кстати таблица с кодами клавиш, значения которой я использовал. Они с результатами моей программы, что даёт код нажатой клавиши - совпадают. Только почему-то таблица в справочнике borland c++
http://netcode.ru/cpp/?artID=234

Добавлено через 11 минут
NQUARE, вот. http://jquery.page2page.ru/ind... в_и_клавиш у меня в GetKeyState возвращаются коды клавиш. ascii при изменении раскладки выдаст разные значения на одну и ту же клавишу. GetKeyState при любой раскладке выдает одинаковые значения. Жду ваших ответов с тестами моего кода, интересно найти проблему разного поведения на моём и вашем пк
0
Искусственный интеллект
 Аватар для NQUARE
112 / 82 / 34
Регистрация: 26.08.2020
Сообщений: 590
Записей в блоге: 1
29.01.2021, 13:17
Цитата Сообщение от Laborant666 Посмотреть сообщение
Может это особенности среды
У меня Sublime Text 4 и MinGW

Добавлено через 1 минуту
Цитата Сообщение от Laborant666 Посмотреть сообщение
не понимаю, по документации GetKeyState действительно работает через ascii
Да, вот и я про то же.

Добавлено через 1 минуту
Цитата Сообщение от Laborant666 Посмотреть сообщение
но у меня работает почему-то через другую таблицу. Я если в параметр вобью код из ascii - у меня GetKeyState не сработает
А у меня всё наоборот.

Добавлено через 2 минуты
Цитата Сообщение от Laborant666 Посмотреть сообщение
что самое забавное я делал цикл от 0 до 256 и прогонял его, в цикле было условие вернуть i когда сработает условие if( GetKeyState(i) < 0). И возвращало не значение из ascii
Что у вас за странное условие? Что оно значит? Зачем вы сравниваете, так ведь запутаться можно. без ничего надо вообще, функция ведь true-false возвращает.

Добавлено через 1 минуту
Цитата Сообщение от Laborant666 Посмотреть сообщение
В ascii есть коды цифро-буквенные
В смысле??? Где вы их там нашли?? Там только цифры от 0 до 256.
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
29.01.2021, 13:17
Цитата Сообщение от NQUARE Посмотреть сообщение
Что у вас за странное условие? Что оно значит? Зачем вы сравниваете, так ведь запутаться можно. без ничего надо вообще, функция ведь true-false возвращает.
Нет, она возвращает состояние клавиши
Return value
Type: SHORT

The return value specifies the status of the specified virtual key, as follows:

If the high-order bit is 1, the key is down; otherwise, it is up.
If the low-order bit is 1, the key is toggled. A key, such as the CAPS LOCK key, is toggled if it is turned on. The key is off and untoggled if the low-order bit is 0. A toggle key's indicator light (if any) on the keyboard will be on when the key is toggled, and off when the key is untoggled.
0
Искусственный интеллект
 Аватар для NQUARE
112 / 82 / 34
Регистрация: 26.08.2020
Сообщений: 590
Записей в блоге: 1
29.01.2021, 13:23
Цитата Сообщение от Laborant666 Посмотреть сообщение
вот кстати таблица с кодами клавиш, значения которой я использовал. Они с результатами моей программы, что даёт код нажатой клавиши - совпадают. Только почему-то таблица в справочнике borland c++
Зачем искать всякие таблице в недрах интернета? Она же не для функции GetKeyState().

Добавлено через 2 минуты
Цитата Сообщение от Laborant666 Посмотреть сообщение
вот. http://jquery.page2page.ru/ind... в_и_клавиш
Стоп. Ну дык там же та самая ASCII таблица...

Добавлено через 1 минуту
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Нет, она возвращает состояние клавиши
Ну это же практически true/false
У меня вот так всё работает на клавише '+':
C++
1
if (GetAsyncKeyState(48)) deg = !deg;
0
 Аватар для Laborant666
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
29.01.2021, 13:52  [ТС]
Цитата Сообщение от NQUARE Посмотреть сообщение
Стоп. Ну дык там же та самая ASCII таблица..
Верхняя таблица это коды символов. Они частично совпадают с ascii. Ниже таблица это коды клавиш w и ц вернут один код, ибо это одна и та же клавиша. Вот потому то и не ascii в GetKeyState. В MSDN написано ascii, но видать давно не редачили.

Добавлено через 2 минуты
Цитата Сообщение от NQUARE Посмотреть сообщение
Ну это же практически true/false
У меня вот так всё работает на клавише '+':
Не тру\фолс. Сравнение с нулем - выдаст тру при зажатой клавише. Без сравнения вообще - нажал кнопку - тру. И будет тру пока ещё раз не нажмешь. Сравнение больше нуля - будет тру при отжатой клавише, вам правильно сказали оно возрвщает состояние клавиши. Плюс вы в своём примере использует GetAsyncKeyState. А это немного другое. Мой код запустите, что я вот вчера кидал и позажимайте клавиши и скажите какая клавиша какой код показала

Добавлено через 2 минуты
NQUARE, запустите этот код и покажите что у вас показывает. Запустили, зажали клавишу после надписи и через три секунды получили код зажатой клавиши. Протыкайте +(плюс) -(минус) *(звезда) на нумпаде, =(равно) -(минус) на основной клавиатуре
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <Windows.h>
int key = 404;
int main()
{
    std::cout << "Press a key\n";
    Sleep(3000);
 
    for (int d = 0; d < 256; d++)
    {
        if (GetKeyState(d) < 0)
        {
            key = d;
            break;
        }
    }
 
    if (key != 404)
        std::cout << "Code of Key is - " << key << "\n";
    else
        std::cout << "Can`t find a key\n";
 
    Sleep(5000);
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.01.2021, 13:52
Помогаю со студенческими работами здесь

Оцените это приложение на предмет соответствию ООП
Народ, я только пару недель учусь C# и вообще программированию в стиле ООП. Оцените пожалуйста приложение. Критика и прочее принимается....

Оцените пожалуйста моё первое простенькое приложение на C#
Замечания и критика только приветствуется. Интересует еще вопрос, а можно ли сократить количество написанного кода? И можно ли сделать так,...

Оцените ПК, за сколько его можно отдать
1. Процессор: Intel Core i7 870 2.93/8M 2. Видеокарта: 1024 Mb/PCi-E/ Power Coolor AMD Radeon HD6850 prem edition 3. Материнская...

Как сломать комп?
Немного странный вопрос возник, слегка противоположный обычным тут:) Вобщем нужно вывести компьютер из строя, саботаж учинить. У жены на...

Как сломать Windows 8
Здравствуйте! Моя подруга хочет установить Win7, но ей запрещают удалить Win8: &quot;На гарантии, пока не слетит 8-ка, нельзя установить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
36
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru