用C語言寫一個鼠標(biāo)連點(diǎn)器!再也不要擔(dān)心紅包搶不過了~

C語言是面向過程的,而C++是面向?qū)ο蟮?/b>

C和C++的區(qū)別:

C是一個結(jié)構(gòu)化語言,它的重點(diǎn)在于算法和數(shù)據(jù)結(jié)構(gòu)。C程序的設(shè)計首要考慮的是如何通過一個過程,對輸入(或環(huán)境條件)進(jìn)行運(yùn)算處理得到輸出(或?qū)崿F(xiàn)過程(事務(wù))控制)。

C++,首要考慮的是如何構(gòu)造一個對象模型,讓這個模型能夠契合與之對應(yīng)的問題域,這樣就可以通過獲取對象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過程(事務(wù))控制。 所以C與C++的最大區(qū)別在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進(jìn),是因?yàn)椤?設(shè)計這個概念已經(jīng)被融入到C++之中 ”。

C與C++的最大區(qū)別:在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進(jìn),是因?yàn)椤?設(shè)計這個概念已經(jīng)被融入到C++之中 ”,而就語言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,錯!算法是程序設(shè)計的基礎(chǔ),好的設(shè)計如果沒有好的算法,一樣不行。而且,“C加上好的設(shè)計”也能寫出非常好的東西。

介紹:

鼠標(biāo)連點(diǎn)器就是用來代替你的手不停的點(diǎn)擊,介紹完畢!

有什么用?

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

我系渣渣輝,掛機(jī)一整晚……

2.在工作學(xué)習(xí)中,你是不是有許多網(wǎng)上的東西要學(xué),是你必須學(xué)的,其實(shí)就是你要不停的點(diǎn)點(diǎn)點(diǎn),

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

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


功能與原理

功能?:

僅限鼠標(biāo)左鍵,點(diǎn)擊頻率0.01-1000次/秒,(個人覺得點(diǎn)擊速度太低和太高都用不上),點(diǎn)擊次數(shù)可選,點(diǎn)擊位置可以鎖定,支持重復(fù)上一次的運(yùn)行設(shè)定。

原理:

引入頭文件 windows.h ,調(diào)用幾個API

1.GetAsyncKeyState 獲取鍵盤信息,判斷某個鍵是否按下,使得程序無論處于什么狀態(tài)都能響應(yīng)

2.mouse_event 模擬鼠標(biāo)的點(diǎn)擊(按下和彈起)

3.GetCursorPos 獲取鼠標(biāo)當(dāng)前的位置

4.SetCursorPos 將鼠標(biāo)移動到指定位置

代碼:

#include

#include

#include

POINT curpos;//鼠標(biāo)的位置

float i;//點(diǎn)擊速度

int j;//點(diǎn)擊次數(shù)

int a=0,b=0;//儲存鼠標(biāo)坐標(biāo)

void selectrate(void);//選擇點(diǎn)擊速度、次數(shù)

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

int main()

{

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

printf("1.這是一個鼠標(biāo)連點(diǎn)器,操作異常簡單。 2.空格鍵開始,暫停,繼續(xù) 3.ESC鍵重新開始 4.點(diǎn)擊的位置為鼠標(biāo)的位置。 5.CTRL鍵鎖定,解鎖位置 ");

while(1)

{

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

selectrate();

system("cls");//清屏

printf("頻率%.2f次/秒 次數(shù)%d次 空格鍵 開始 暫停 繼續(xù) ESC鍵 重新開始 CTRL鍵 鎖定 解鎖位置 ",

1000/i,j);

click(i,j);

}

return 0;

}

void selectrate(void)

{

while(1)

{

Sleep(200);

if(GetAsyncKeyState(VK_SPACE))

{system("cls");

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

scanf("%f",&i);

i=(int)(1000/i);

printf("請輸入點(diǎn)擊次數(shù) x 次 ( 0 表示無限次) ");

scanf("%d",&j);

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

break;}

}

}

void click(int i,int j)

{

while(1)

{

if(GetAsyncKeyState(VK_SPACE))

{

int k=j;

printf("運(yùn)行 ");

while(k--)//點(diǎn)擊次數(shù)

{

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);

//鎖定目標(biāo)位置

if(GetAsyncKeyState(VK_CONTROL))

{

if(a&&b)

{a=0;b=0;

printf("解除鎖定 ");}

else

{GetCursorPos(&curpos);

a=(int)curpos.x;

b=(int)curpos.y;

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

}

if(GetAsyncKeyState(VK_SPACE))

{

printf("暫停 ");

//接收到信號才繼續(xù)執(zhí)行

while(1)

{

if(GetAsyncKeyState(VK_SPACE))

{printf("繼續(xù) ");

break;}

Sleep(200);

if(GetAsyncKeyState(VK_ESCAPE))

{printf("重新開始 ");

return ;}

}

}

if(GetAsyncKeyState(VK_ESCAPE))

{printf("重新開始 ");

return ;}

}

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

while(1)

{

if(GetAsyncKeyState(VK_SPACE))

break;

Sleep(200);

if(GetAsyncKeyState(VK_ESCAPE))

{printf("重新開始 ");

return ;}

}

}

Sleep(250);

}

}

效果截圖:


操作

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

Space鍵:控制開始、暫停、繼續(xù)。若點(diǎn)擊次數(shù)有限且點(diǎn)擊結(jié)束后,按Space鍵可以重復(fù)一輪點(diǎn)擊。

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

Esc鍵:則是重新開始設(shè)定點(diǎn)擊頻率和次數(shù)。

總結(jié):

代碼簡單,主要是判斷語句和循環(huán)語句,適宜小白借鑒 可修改性強(qiáng),喜歡的弄個GUI啊,圖標(biāo)啊什么的都行,自定義按鍵,多點(diǎn)控制也不是問題

實(shí)用,比某些幾個M大的軟件好多了(就一個鼠標(biāo)連點(diǎn)器還這么大,怕不是有后門)

自己寫的,看得見摸得著,用的放心。貫徹極簡風(fēng)格,舍棄GUI(因?yàn)橛貌恢?,代碼量100行。

自學(xué)C/C++不易,此路應(yīng)攜手前行。

如果你想跟著小編一起學(xué)編程的話!

可以來我專欄的C語言/C++編程學(xué)習(xí)基地,【點(diǎn)擊進(jìn)入】!

還有(源碼,零基礎(chǔ)教程,項(xiàng)目實(shí)戰(zhàn)教學(xué)視頻)【進(jìn)入領(lǐng)取】!? ? ?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容