C語言學習:用C語言寫一個鼠標連點器

介紹:

鼠標連點器就是用來代替你的手在電腦上不停的點擊電腦,介紹完畢!

有什麼用?

  1. 愛打遊戲嗎?喜歡刷等級的同學收藏了,睡一覺就滿級了。讓他自己在電腦上不停的點點點。

我係渣渣輝,掛機一整晚……

2.在工作學習中,你是不是有許多網上的東西要學,是你必須學的,其實就是你要不停的點點點,

這個時候它的作用就不用我說了吧,專治各種網上掛時長。

3.看過直播的都知道,有些給主播送禮物的土豪為了表達心意,送上幾千甚至幾萬的禮物,這時候就要不停的點擊屏幕,不能停下來,不然禮物的特效就會終斷,鼠標連點器的作用有點強大啊。

C語言學習:用C語言寫一個鼠標連點器

功能與原理

功能:僅限鼠標左鍵,點擊頻率0.01-1000次/秒,(個人覺得點擊速度太低和太高都用不上),點擊次數可選,點擊位置可以鎖定,支持重複上一次的運行設定。

原理:

引入頭文件 windows.h ,調用幾個API

1.GetAsyncKeyState 獲取鍵盤信息,判斷某個鍵是否按下,使得程序無論處於什麼狀態都能響應

2.mouse_event 模擬鼠標的點擊(按下和彈起)

3.GetCursorPos 獲取鼠標當前的位置

4.SetCursorPos 將鼠標移動到指定位置

C語言學習:用C語言寫一個鼠標連點器

代碼

#include

#include

#include

POINT curpos;//鼠標的位置

float i;//點擊速度

int j;//點擊次數

int a=0,b=0;//儲存鼠標座標

void selectrate(void);//選擇點擊速度、次數

void click(int i,int j);//開始點擊

int main()

{

system("mode con cols=25 lines=10");//窗口大小

system("title 源世界.Dracula出品");

//簡單說明

printf("1.這是一個鼠標連點器,操作異常簡單。\n2.空格鍵開始,暫停,繼續\n3.ESC鍵重新開始\n4.點擊的位置為鼠標的位置。\n5.CTRL鍵鎖定,解鎖位置\n");

while(1)

{

printf("按空格鍵開始");

selectrate();

system("cls");//清屏

printf("頻率%.2f次/秒\n次數%d次\n空格鍵 開始 暫停 繼續\nESC鍵 重新開始\nCTRL鍵 鎖定 解鎖位置\n",

1000/i,j);

click(i,j);

}

return 0;

}

void selectrate(void)

{

while(1)

{

Sleep(200);

if(GetAsyncKeyState(VK_SPACE))

{system("cls");

printf("請輸入點擊頻率 n 次/秒\n(0.01< n <=1000)\n");

scanf("%f",&i);

i=(int)(1000/i);

printf("請輸入點擊次數 x 次\n( 0 表示無限次)\n");

scanf("%d",&j);

j=j==0?1000000000:j;//用一個極大的數表示無限

break;}

}

}

void click(int i,int j)

{

while(1)

{

if(GetAsyncKeyState(VK_SPACE))

{

int k=j;

printf("運行\n");

while(k--)//點擊次數

{

if(a&&b)SetCursorPos(a,b);

mouse_event(MOUSEEVENTF_LEFTDOWN,curpos.x,curpos.y,0,0);

mouse_event(MOUSEEVENTF_LEFTUP,curpos.x,curpos.y,0,0);

Sleep(i);

//鎖定目標位置

if(GetAsyncKeyState(VK_CONTROL))

{

if(a&&b)

{a=0;b=0;

printf("解除鎖定\n");}

else

{GetCursorPos(&curpos);

a=(int)curpos.x;

b=(int)curpos.y;

printf("位置鎖定 %d %d\n",a,b);}

}

if(GetAsyncKeyState(VK_SPACE))

{

printf("暫停\n");

//接收到信號才繼續執行

while(1)

{

if(GetAsyncKeyState(VK_SPACE))

{printf("繼續\n");

break;}

Sleep(200);

if(GetAsyncKeyState(VK_ESCAPE))

{printf("重新開始\n");

return ;}

}

}

if(GetAsyncKeyState(VK_ESCAPE))

{printf("重新開始\n");

return ;}

}

printf("按空格鍵再來一次\n");

while(1)

{

if(GetAsyncKeyState(VK_SPACE))

break;

Sleep(200);

if(GetAsyncKeyState(VK_ESCAPE))

{printf("重新開始\n");

return ;}

}

}

Sleep(250);

}

}

效果截圖:

C語言學習:用C語言寫一個鼠標連點器

C語言學習:用C語言寫一個鼠標連點器

操作

按鍵只有三個,Space鍵,Ctrl鍵和Esc鍵。

Space鍵控制開始、暫停、繼續。若點擊次數有限且點擊結束後,按Space鍵可以重複一輪點擊。

Ctrl鍵控制位置的鎖定和解鎖。(僅在點擊過程中有效)

Esc鍵則是重新開始設定點擊頻率和次數。

總結:

代碼簡單,主要是判斷語句和循環語句,適宜小白借鑑 可修改性強,喜歡的弄個GUI啊,圖標啊什麼的都行,自定義按鍵,多點控制也不是問題

實用,比某些幾個M大的軟件好多了(就一個鼠標連點器還這麼大,怕不是有後門)

自己寫的,看得見摸得著,用的放心。貫徹極簡風格,捨棄GUI(因為用不著),代碼量100行。

如果需要我調試好的exe文件,私信我回復0520就好了,自動回覆,注意不是評論。


分享到:


相關文章: