使用c++在愚人節(jié)這天在不投降的情況下使用PCL2啟動(dòng)游戲!
知周所眾?PCL2 有一個(gè)愚人節(jié)菜單,只要你鼠標(biāo)移到啟動(dòng)游戲按鍵時(shí),它就會(huì)飛走,所以,你只能點(diǎn)擊投降鍵來(lái)認(rèn)輸,會(huì)讓我們顏面盡失
最為一名會(huì)c++的且用PCL2的人,我有義務(wù)去為害民除幫玩家解決這一個(gè)難題
所以,我寫(xiě)出了它:

注意:按下ecs鍵即可開(kāi)啟游戲,但是要確保開(kāi)始游戲的按鍵在原位且PCL2在初始位置,沒(méi)有移動(dòng)過(guò)位置
代碼如下:
#include<bits/stdc++.h>
#include<windows.h>
#include<tlhelp32.h>
#define?KEY_DOWN(VK_NONAME)?((GetAsyncKeyState(VK_NONAME)?&?0x8000)???1:0)
#define?setcolor(int)?SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),int)
using?namespace?std;
void?Mouse_Move(int?x,?int?y){
????double?fScreenWidth?=?::GetSystemMetrics(SM_CXSCREEN)?-?1;
????double?fScreenHeight?=?::GetSystemMetrics(SM_CYSCREEN)?-?1;
????double?fx?=?x?*?(65535.0f?/?fScreenWidth);
????double?fy?=?y?*?(65535.0f?/?fScreenHeight);
????mouse_event(MOUSEEVENTF_ABSOLUTE?|?MOUSEEVENTF_MOVE,?fx,?fy,?0,?0);
}
void?gbc(BOOL?a){
????HANDLE?gb?=GetStdHandle(STD_OUTPUT_HANDLE);
????CONSOLE_CURSOR_INFO?cursor_info;
????GetConsoleCursorInfo(gb,&cursor_info);
????cursor_info.bVisible=a;
????SetConsoleCursorInfo(gb,&cursor_info);
}
void?move(?int??x?,??int??y?){????
????COORD??point?=?{??x?,??y??};?
????HANDLE??HOutput?=?GetStdHandle(?STD_OUTPUT_HANDLE?);?
????SetConsoleCursorPosition(HOutput,?point);?
}
bool?jc(const?char*?ch){
????HANDLE?hSnapshot?=?CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
????if?(INVALID_HANDLE_VALUE?==?hSnapshot)
????????return?0;
????PROCESSENTRY32?pi;?
????pi.dwSize?=?sizeof(PROCESSENTRY32);
????BOOL?bRet?=?Process32First(hSnapshot,&pi);
????while?(bRet){???
????????const?char*?szf=pi.szExeFile;
????????if(strcmp(szf,ch)==0)return?1;
????????bRet?=?Process32Next(hSnapshot,&pi);
????}
????return?0;
}
typedef?struct{
????HWND?hwndWindow;
????DWORD?dwProcessID;
}EnumWindowsArg;
BOOL?CALLBACK?EnumWindowsProc(HWND?hwnd,?LPARAM?lParam){
????EnumWindowsArg?*pArg?=?(EnumWindowsArg?*)lParam;
????DWORD?dwProcessID?=?0;
????::GetWindowThreadProcessId(hwnd,?&dwProcessID);
????if?(dwProcessID?==?pArg->dwProcessID){
????????pArg->hwndWindow?=?hwnd;
????????return?FALSE;
????}
????return?TRUE;
}
HWND?GetWindowHwndByPID(DWORD?dwProcessID){
????HWND?hwndRet?=?NULL;
????EnumWindowsArg?ewa;
????ewa.dwProcessID?=?dwProcessID;
????ewa.hwndWindow?=?NULL;
????EnumWindows(EnumWindowsProc,?(LPARAM)&ewa);
????if?(ewa.hwndWindow)
????????hwndRet?=?ewa.hwndWindow;
????return?hwndRet;
}
int?main(){
????POINT?p;
????SetConsoleTitle("暴打PCL2愚人節(jié)");
????system("mode?con?cols=35?lines=5");
????while(1){
????????time_t?now?=?time(NULL);
????????tm*?tm_t?=?localtime(&now);
????????gbc(0);
????????move(0,0);
????????setcolor(15);
????????cout<<"[PCL游戲啟動(dòng)輔助器]"<<endl;
????????setcolor(14);
????????cout<<"用PCL啟動(dòng)游戲(esc)"<<endl;
????????setcolor(7);
????????if(jc("PCL2.exe"))cout<<"檢測(cè)到PCL2"<<endl;
????????else?cout<<"未檢測(cè)到PCL2"<<endl;
????????setcolor(8);
????????stringstream?ss;
????????ss?<<?"當(dāng)前時(shí)間:"?<<?tm_t->tm_year?+?1900?<<?"."?<<?tm_t->tm_mon?+?1?<<?"."?<<?tm_t->tm_mday<<?"."?<<?tm_t->tm_hour?<<?"."?<<?tm_t->tm_min<<"."<<tm_t->tm_sec;
????????cout<<ss.str();
????????if(KEY_DOWN(VK_ESCAPE)){
????????????Mouse_Move(598,178);
????????????mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
????????????mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
????????????Mouse_Move(540,570);
????????????mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
????????????mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
????????????while(KEY_DOWN(VK_SPACE));
????????}
????}
}
代碼共94行2878字
看完后不妨留下你的三連+關(guān)注!
我是Perry6632,bey~