Реально ли организовать автоклик - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Вообщем-то интересует данный вопрос. Хотелось для собственного развития написать нечто подобное, но реализации именно на языке Си я не нашел. Поэтому возникает вопрос. Можно ли?

Решение задачи: «Реально ли организовать автоклик»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
 
#define OBLAST 50 // в какой области искать буквы
#define PAUSE 10
 
    HDC hdc;
    long int XPos,YPos,i=0,j;
    COLORREF ColorPix;
    POINT p; // структура для координат
 
 
void Click()
{
            mouse_event (MOUSEEVENTF_LEFTDOWN,0,0,0,0);
            mouse_event (MOUSEEVENTF_LEFTUP,0,0,0,0);
            Sleep(PAUSE);
            mouse_event (MOUSEEVENTF_LEFTDOWN,0,0,0,0);
            mouse_event (MOUSEEVENTF_LEFTUP,0,0,0,0);
            Sleep(PAUSE);
            mouse_event (MOUSEEVENTF_LEFTDOWN,0,0,0,0);
            mouse_event (MOUSEEVENTF_LEFTUP,0,0,0,0);
            Sleep(PAUSE);
            return;
}
 
 
int main()
{
    printf("*** ANTI ZERG ***\n");
    Sleep(2000);
    hdc=GetDC(NULL); // дескриптор рабочего стола
 
 
    while (1){
        start: // метка для возврата после клика
 
    // определяем координаты курсора
        GetCursorPos(&p);
        XPos=p.x,YPos=p.y;
 
    // определяем цвет под курсором
    ColorPix=GetPixel(hdc,XPos,YPos);
 
    // ищем радом стоящий пиксель буквы и перемещаем туда курсор
 
    for (i=0; i<OBLAST;i++ )
    {
    // ищем ВВЕРХ
        ColorPix=GetPixel(hdc,XPos,YPos-i);
        if (GetRValue(ColorPix)>160 && GetGValue(ColorPix)<200 && GetBValue(ColorPix)<150)
        {
            SetCursorPos(XPos,YPos-i);
            Click();
            goto start;
        }
 
    // ищем ВНИЗ
        ColorPix=GetPixel(hdc,XPos,YPos+i);
        if (GetRValue(ColorPix)>160 && GetGValue(ColorPix)<200 && GetBValue(ColorPix)<150)
        {
            SetCursorPos(XPos,YPos+i);
            Click();
            goto start;
        }
 
    // ищем ВЛЕВО
        ColorPix=GetPixel(hdc,XPos-i,YPos);
        if (GetRValue(ColorPix)>160 && GetGValue(ColorPix)<200 && GetBValue(ColorPix)<150)
        {
            SetCursorPos(XPos-i,YPos);
            Click();
            goto start;
        }
 
    // ищем ВПРАВО
        ColorPix=GetPixel(hdc,XPos+i,YPos);
        if (GetRValue(ColorPix)>160 && GetGValue(ColorPix)<200 && GetBValue(ColorPix)<150)
        {
            SetCursorPos(XPos+i,YPos);
            Click();
            goto start;
        }
    }
 
    Sleep(PAUSE);
 
    }
    return 0;
 
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.333 из 5
Похожие ответы