Как сделать чтоб поток переставал выполняться когда ЛКМ перестает быть зажата? Есть такой код:
void spray()
{
mouse_event((0x0001), 1, 4, 0, 0);
Sleep(100);
mouse_event((0x0001), 1, 4, 0, 0);
Sleep(100);
mouse_event((0x0001), 1, 4, 0, 0);
Sleep(100);
mouse_event((0x0001), 0, 3, 0, 0);
Sleep(100);
mouse_event((0x0001), 0, 3, 0, 0);
Sleep(100);
}
Он должен выполняться когда зажата лкм,и что самое важное,если мы отпустили ЛКМ он должен перестать выполняться,т е прерваться на одной из mouse_move. Если это можно как то реализовать без потоков,то тоже вариант неплох. Я пишу так:
byte n=1;
while (true)
{
if(GetAsyncKeyState(0x01) & 0x8000)
{
if (n == 1)
{
n = 0;
thread thr(ak47);
thr.detach();
}
}
else
{
//Было бы круто тут остановить поток thr
n = 1;
}
}
Но проблема в том ,что код выполняется полностью,даже когда кнопка не нажата. Буду очень благодарен за помощь!
Я пишу так:
Не надо. Пишите так: https://ru.stackoverflow.com/a/963930/240512
Что касается остановки потока, проще всего это сделать какой-нибудь атомарной переменной-флагом:
std::atomic<bool> should_stop=false;
void spray()
{
mouse_event((0x0001), 1, 4, 0, 0);
Sleep(100);
if(should_stop) return;
mouse_event((0x0001), 1, 4, 0, 0);
Sleep(100);
if(should_stop) return;
//...
}
//...
should_stop = true; //остановить поток
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Мне нужно вывести максимальное число из динамического массива, а как это сделать я понятия не имеюЦикл for не удобен
Уже задавал сегодня похожий вопросПроблему решили
Ссылка на php скриптСкрипт нормально получает параметры version и name, но text не получается, он становится таким: