c++ - 如何让我的自动点击器随机化它点击的毫秒?
问题描述
如何让我的自动点击器随机化它点击的毫秒?我问这个问题是因为我找不到任何关于这个的文章,而且我很长一段时间都需要回答这个问题,但正如我所说的那样,找不到任何关于它的文章。
请给我代码。
我的代码:
#include "stdafx.h"
#include <windows.h>
#include <iostream>
using namespace std;
int main()
{
cout << "\"F\" = Toggle on\n";
cout << "\"R\" = Toggle off\n\n";
bool Click = false;
while (1)
{
if (GetAsyncKeyState('F')) // Toggle on
{
Click = true;
}
if (GetAsyncKeyState('R')) // Toggle off
{
Click = false;
}
if (Click == true) // Autoclicker
{
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
Sleep(50);
}
}
return 0;
}
我希望它点击 50 到 60 毫秒
解决方案
利用 chrono 库,我们可以设置一个计时器来测量按键之间的延迟,我们可以使用 randomize 库来随机化延迟。
对于切换,在 GetAsyncKeyState() 调用中使用 &1 来测试是否设置了最低有效位。
这是一个很好的解决方案:
#include <windows.h>
#include <iostream>
#include <chrono>
#include <thread>
#include <random>
int main()
{
INPUT input{ 0 };
input.type = INPUT_MOUSE;
bool bClick = false;
std::default_random_engine generator;
std::uniform_int_distribution<int> distribution(1, 300);
int random_value = distribution(generator);
using Clock = std::chrono::steady_clock;
std::chrono::time_point<std::chrono::steady_clock> start, now;
std::chrono::milliseconds duration;
start = Clock::now();
while (true)
{
//toggles it on and off with one key
if (GetAsyncKeyState('U') & 1)
bClick = !bClick;
if (bClick)
{
now = Clock::now();
duration = std::chrono::duration_cast<std::chrono::milliseconds>(now - start);
if (duration.count() >= random_value)
{
int random_value = distribution(generator);
std::cout << random_value << std::endl;
input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
SendInput(1, &input, sizeof(INPUT));
input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
SendInput(1, &input, sizeof(INPUT));
start = std::chrono::steady_clock::now();
}
}
}
return 0;
}
推荐阅读
- reactjs - 部署到 DigitalOcean 时 GitHub 操作失败
- reactjs - noob - 反应打字稿待办事项
- python-3.x - Numpy 中值计算未在 BarPlot 上表示,我如何表示值
- python - 对整个数据框使用真/假逻辑的熊猫测试
- json - 使用 Bash 从纪元以来的毫秒数获取日期
- python - 进程在 Pycharm 中以退出代码 -1073741819 (0xC0000005) 完成
- reactjs - 是的(使用 formik 和 react) - 无法验证数组长度
- javascript - TypeError:props.addToCart 不是函数
- python - 如何匹配两个数据框的列中的值?
- python - 从字典制作字典