連點器,顧名思義,可以連續點的機器。
當然,連續可快可慢;機器意味着不許要人工點選;可以是生活中的機器,也可以是電腦中的程式。
既然我們是coder,那麼這種程式應該用我們的雙手親手寫下吧!(當然你要Ctrl+C&Ctrl+V我也沒辦法……)
連點器
介紹
顧名思義,可以連續點的機器。
當然,連續可快可慢;機器意味着不許要人工點選;可以是生活中的機器,也可以是電腦中的程式。
現在,連點器網上一搜一大堆,什麼滑鼠連點精靈,鼠大俠……不僅有電腦的,還有安卓系統的。
但是,用這些軟體,我很不放心。說不定就有什麼木馬病毒呢……
再說,我們這些coder都不喜歡那些總是誤報的殺軟,測試程式時等了十幾秒結果彈出個“危險木馬程式”的警告,是以(我)在code時一般是不開360等殺軟的。
那怎麼辦呢?
既然我們是coder,那麼這種程式應該用我們的雙手親手寫下吧!(當然你要Ctrl+C&Ctrl+V我也沒辦法……)
Code0
1 #include<stdio.h>
2 #include<stdlib.h>
3 #include<iostream>
4 #include<windows.h>
5 using namespace std;
6 #define IL inline
7 #define RE register
8
9 POINT curpos;//滑鼠的位置
10 float i;//點選速度
11 int j;//點選次數
12 int a=0,b=0;//貯存滑鼠坐标
13 bool fast,inf;
14
15 IL void selectrate()//選擇點選速度、次數
16 {
17 while(1)
18 {
19 system("cls");
20 printf("由于windows的最小計時機關為毫秒,故輸入大于1000的數字将會被轉化為1000,輸入0會…會失去等待時間!\n請輸入點選頻率 n 次/秒\n(0.01< n <=1000)\n");
21 cin>>i;
22 if(i==0) fast=1;
23 i=(int)(1000/i);
24 printf("請輸入點選次數 x 次\n( 0 暗示無限次)\n");
25 cin>>j;
26 if(j==0) inf=1;
27 break;
28 }
29 }
30
31 IL void click(int i,int j)
32 {
33 while(1)
34 {
35 if(GetAsyncKeyState(VK_SPACE))
36 {
37 RE int k=j;
38 if(inf) k=-1;
39 printf("運作\n");
40 while(k--)//點選次數
41 {
42 if(a&&b)SetCursorPos(a,b);
43 mouse_event(MOUSEEVENTF_LEFTDOWN,curpos.x,curpos.y,0,0);
44 mouse_event(MOUSEEVENTF_LEFTUP,curpos.x,curpos.y,0,0);
45 if(!fast) Sleep(i);
46 //鎖定目标位置
47 if(GetAsyncKeyState(VK_CONTROL))
48 {
49 if(a&&b)
50 {
51 a=0;b=0;
52 printf("解除鎖定\n");
53 }
54 else
55 {
56 GetCursorPos(&curpos);
57 a=(int)curpos.x;
58 b=(int)curpos.y;
59 printf("位置鎖定 %d %d\n",a,b);
60 }
61 }
62 if(GetAsyncKeyState(VK_SPACE))
63 {
64 printf("暫停\n");Sleep(100);
65 //接收到信号才繼續執行
66 while(1)
67 {
68 if(GetAsyncKeyState(VK_SPACE))
69 {
70 printf("繼續\n");
71 break;
72 }
73 Sleep(100);
74 if(GetAsyncKeyState(VK_ESCAPE))
75 {
76 printf("重新開始\n");
77 return;
78 }
79 }
80 }
81 if(GetAsyncKeyState(VK_ESCAPE))
82 {
83 printf("重新開始\n");
84 return;
85 }
86 }
87 printf("按空格鍵再來一次\n");
88 while(1)
89 {
90 if(GetAsyncKeyState(VK_SPACE)) break;
91 Sleep(200);
92 if(GetAsyncKeyState(VK_ESCAPE))
93 {
94 printf("重新開始\n");
95 return;
96 }
97 }
98 }
99 Sleep(250);
100 }
101 }
102
103
104 int main()
105 {
106 system("mode con cols=25 lines=10");
107 system("title made by S.O.A.F");
108 SetWindowPos(GetForegroundWindow(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
109 printf("自動視窗置頂\n空格鍵開始,暫停,繼續\nESC鍵重新開始\n4.點選的位置為滑鼠的位置。\nCTRL鍵鎖定,解鎖位置\n");
110
111 while(1)
112 {
113 fast=inf=0;
114 system("pause");
115 selectrate();
116 system("cls");
117 printf("頻率%.2f次/秒\n次數%d次\n空格鍵 開始 暫停 繼續\nESC鍵 重新開始\nCTRL鍵 鎖定 解鎖位置\n",1000/i,j);
118 click(i,j);
119 }
120 return 0;
121 }
這裡有許多功能。
視窗置頂
鎖定位置
中途暫停
中途啟動
……
(但是效率不是特别高)
在我經過一番測試後,覺得許多功能都是沒必要的,就把他們删了。
1 #include<stdio.h>
2 #include<stdlib.h>
3 #include<iostream>
4 #include<windows.h>
5 using namespace std;
6 #define IL inline
7 #define RE register
8 POINT curpos;//滑鼠的位置
9 int main()
10 {
11 float i;//點選速度
12 bool fast,flag;
13 system("mode con cols=25 lines=10");
14 system("title Code by S.O.A.F");
15 SetWindowPos(GetForegroundWindow(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
16 printf("自動視窗置頂\n空格鍵開始,暫停,繼續\nESC鍵重新開始\n4.點選的位置為滑鼠的位置。\nCTRL鍵鎖定,解鎖位置\n");
17
18 while(1)
19 {
20 fast=flag=0;
21 system("pause");
22 system("cls");
23
24 printf("由于windows的最小計時機關為毫秒,故輸入大于1000的數字将會被轉化為1000,輸入0會…會失去等待時間!\n請輸入點選頻率 n 次/秒\n(0.01< n <=1000)\n");
25 cin>>i;
26 if(i==0) fast=1;
27 else i=(int)(1000/i);
28 system("cls");
29
30 printf("頻率%.2fHz\n空格鍵 開始\nESC鍵 重新開始\n",1000/i);
31
32 while(1)//等待空格觸發開始
33 {
34 if(GetAsyncKeyState(VK_SPACE))
35 {
36 printf("開始運作\n");
37 while(1)
38 {
39 if(!fast) Sleep(i);
40 mouse_event(MOUSEEVENTF_LEFTDOWN,curpos.x,curpos.y,0,0);
41 mouse_event(MOUSEEVENTF_LEFTUP,curpos.x,curpos.y,0,0);
42 if(GetAsyncKeyState(VK_ESCAPE))
43 {
44 printf("重新開始\n");
45 flag=1;
46 break;
47 }
48 }
49 }
50 if(GetAsyncKeyState(VK_ESCAPE))
51 {
52 printf("end\n");
53 flag=1;
54 }
55 if(flag) break;
56 }
57
58 }
59 return 0;
60 }
隻有短短的六十行!
還把函數都涵蓋到主函數裡面了。
反正,用來給釘釘直播刷贊應該夠了吧……
測試程式
那要是不刷贊無聊的時候,怎麼來測試連點器的性能呢?
我又翻了翻mouse的一些函數,找到了mouse_event();
1 #include<windows.h>
2 #include<cstdio>
3 #include<iostream>
4 using namespace std;
5
6
7 int main()
8 {
9 HANDLE ConsoleWin;
10 INPUT_RECORD eventMsg;
11 DWORD Pointer ;
12 long long a=0;
13 ConsoleWin = GetStdHandle(STD_INPUT_HANDLE);//Get the console window
14
15 while(1){
16 ReadConsoleInput(ConsoleWin, &eventMsg, 1, &Pointer);//Read input msg
17 if (eventMsg.EventType == MOUSE_EVENT && eventMsg.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) printf("%lld\n",++a);
18 }
19 return 0;
20 }
運作後,點一下控制台就會記錄+1。十分友善快捷!
(記得關閉“快速編輯模式”!)