O Mais Rápido Mouse Clicker para Windows | Site Oficial

O clique automático mais rápido para Windows PC. 100000 cliques por segundo alcançado por Win32 SendInput(). GUI, linha de comando, sequências de registro/jogo de cliques

Baixe a versão mais recente : 2.6.2.0
( espelho ) - ler AlterarORegisto

Github: 175 Stars given at Github , 33 Forks made at Github , 51465067 Total downloads including all the historical sites
( Gitlab )

Atualizado : Junho 11 2025

Developer's Facebook Siga Facebook
Developer's Youtube Siga Youtube
Developer's Tumblr Siga Tumblr

O Mais Rápido Mouse Clicker para Windows | Tecnologia

O auto-clicker mais rápido para PC com Windows. Este é o único auto-clicker que utiliza matrizes em chamadas de sistema SendInput para atingir a velocidade máxima de clique

Atualizado : Junho 11 2025.

Ao contrário de outros clicadores automáticos que usam a chamada de sistema obsoleta mouse_event() de código fonte C/C++ ou SendInput() não-array de código fonte C#/.Net, o Clicker de Mouse Mais Rápido para Windows usa array SendInput() com matrizes de eventos do mouse:


UINT nCntExtra = (nCnt - 1) * 2; // índice reservado para BAIXO, CIMA

for (UINT iExtra = 0; iExtra < nCntExtra; iExtra += 2)
{
input[1 + iExtra].type = INPUT_MOUSE;

input[1 + iExtra].mi.dx = dx;
input[1 + iExtra].mi.dy = dy;

input[1 + iExtra].mi.mouseData = dwData;
input[1 + iExtra].mi.time = 0;
input[1 + iExtra].mi.dwExtraInfo = dwExtraInfo;

...
}

...

UINT ret = SendInput(1 + nCntExtra, input, sizeof(INPUT));

O tamanho dos arrays é cuidadosamente calculado com base na taxa de cliques fornecida pelo usuário final. Para evitar estouro do buffer de eventos do sistema, o tempo em Sleep() é selecionado corretamente de acordo com o tamanho do array.

A interface gráfica do usuário (GUI) do aplicativo parece arcaica, mas é feita por chamadas de sistema Win32 muito básicas para evitar degradação de desempenho causada por bibliotecas de terceiros de alto nível, como Qt ou código gerenciado lento em frameworks como C#/.Net.

Por exemplo, GetAsyncKeyState() é usado para detectar as teclas de gatilho pressionadas pelo usuário final:


if (!doToggle)
{
if (toggleState == 0 && GetAsyncKeyState(atoi(triggerText)))
toggleState = 1;
...
}
else
{
if (toggleState == 0 && GetAsyncKeyState(atoi(triggerText)))
toggleState = 1;
...
}

Outro benefício dessa abordagem é um executável compacto, estaticamente vinculado e sem dependências externas.

Quando o usuário final seleciona baixas taxas de cliques, o tamanho real da matriz de eventos do mouse em SendInput() é definido como 1 e o número de cliques por segundo é regulado apenas por Sleep(). Mas quando o usuário final seleciona altas taxas de cliques, o tamanho da matriz se torna significativo. Em raras circunstâncias, isso pode levar ao congelamento de toda a interface gráfica do usuário (GUI) do Windows. Para evitar isso, a thread auxiliar é criada para escanear GetAsyncKeyState() independentemente, para que o usuário final solicite a interrupção do clique e forçar BlockInput(), pois o buffer de eventos do mouse pode estar cheio:


DWORD WINAPI MyThreadFunction(LPVOID lpParam)
{
while (true)
{
if (GetAsyncKeyState(atoi(triggerText2)))
{
...
BlockInput(TRUE);
Sleep(100);
BlockInput(FALSE);
...
SetMsgStatus(hWnd, GetDlgCtrlID(statusText)
, "idle");
}

Sleep(10);
}

return 0;
}

Para ser mais compatível com versões mais antigas do Windows, O Mais Rápido Mouse Clicker para Windows utiliza a API base do Win32 para a criação de widgets. Ele usa a abordagem tradicional do Windows para redesenhar todos os widgets em um loop de eventos do Windows. Para atualizar a visualização de um widget específico, um evento é enviado para esse widget na thread principal e a chamada de entrada é passada para o manipulador do loop de eventos, onde o redesenho real ocorre.

Primeiro, declaramos uma função de retorno de chamada WindowProc(). Em segundo lugar, registramos uma classe de janela principal com esse retorno de chamada por RegisterClassA(). E, finalmente, entramos em um loop infinito dentro da função de retorno de chamada de evento.


LRESULT CALLBACK winCallBack(
HWND hWin
, UINT msg
, WPARAM wp
, LPARAM lp
);

...

// Inicializando a classe de janela
windClass.style = CS_HREDRAW | CS_VREDRAW;
windClass.lpfnWndProc = winCallBack;
windClass.cbClsExtra = 0;
windClass.cbWndExtra = 0;
windClass.hInstance = instanceH;
windClass.hIcon = LoadIcon(
windClass.hInstance
, MAKEINTRESOURCE(101)
);
windClass.hCursor = LoadCursor(
NULL
, IDC_ARROW
);
windClass.hbrBackground = (HBRUSH)GetStockObject(
WHITE_BRUSH
);
windClass.lpszClassName = "O mouse mais rápido para Windows"

//Registrando a classe de janela
RegisterClass(&windClass);

...

RETORNO DE CHAMADA LRESULT winCallBack(
HWND hWin
, UINT msg
, WPARAM wp
, LPARAM lp
)
{
HDC dc;
PAINTSTRUCT ps;
int status_local = 0;
switch (msg)
{
case WM_COMMAND:
switch(LOWORD(wp))
{
case RESET_BTN:

...
...
}

Por outro lado, para maior compatibilidade com as versões mais recentes do Windows e hardwares mais recentes, como monitores profissionais 4K e monitores gamer, o ajuste do tamanho da fonte é realizado na inicialização do aplicativo, utilizando tamanho de fonte variável e manifesto XML incorporado high DPI.


struct _Sc
{
int factor;
_Sc() : fator(1)
{
int h, v;
ObterResoluçãoDeDesktop(h, v);
if (v > 1440)
fator = 2;
}
} _sc;

int Sc(int x)
{
return x * _sc.fator;
}

...

statusText = CreateWindow(
"Estático"
, "status do clique: inativo"
, WS_VISIBLE | WS_CHILD
, Sc(5)
, Sc(1)
, Sc(410)
, Sc(35)
, hWnd
, 0
, 0
, 0
);

O manifesto XML incorporado do aplicativo contém uma seção com alta percepção de DPI.


...

<asmv3:application>
<asmv3:windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
true
</dpiAware>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
system
</dpiAwareness>
</asmv3:windowsSettings>
</asmv3:application>

...

Há muitos outros truques programáticos que usei para obter desempenho, compatibilidade e aparência excelentes. Se você quiser descobri-los, terá que estudar o código-fonte por si mesmo.

Direitos autorais (c) 2016-2025 de Desenvolvedor de código aberto Masha Novedad, o autor do Mais Rápido Mouse Clicker para Windows