本蒟蒻弄了个神奇的头文件
  • 板块灌水区
  • 楼主fifififi
  • 当前回复6
  • 已保存回复6
  • 发布时间2022/1/3 20:32
  • 上次更新2023/10/28 12:51:51
查看原帖
本蒟蒻弄了个神奇的头文件
400384
fifififi楼主2022/1/3 20:32
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h> 


#define PC_X GetSystemMetrics(SM_CXSCREEN)
#define PC_Y GetSystemMetrics(SM_CYSCREEN)

//#define setcolor(x) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x)//x填BACKGROUND_颜色() | FOREGROUND_颜色	颜色大写 详见https://cloud.tencent.com/developer/article/1732036 
 
using namespace std;

int mousemap[3][2]={{MOUSEEVENTF_LEFTDOWN,MOUSEEVENTF_LEFTUP},{MOUSEEVENTF_MIDDLEDOWN,MOUSEEVENTF_MIDDLEUP},{MOUSEEVENTF_RIGHTDOWN,MOUSEEVENTF_RIGHTUP}};
//0,~为鼠标左键  1,~为鼠标滚轮  2,~为鼠标右键  ~,0为按下  ~,1为弹起      for mdown() and mup()


class classkeybd
{//键盘 
	public:
		void down(int);//		键盘放下 
		void up(int);//			键盘抬起 
		void press(int,int);//	键盘点击 
		bool key_down(int);//	判断这个键是否按下
};

class classmouse
{//鼠标 
	public:
		void mdown(int);//		鼠标放下 
		void mup(int);//		鼠标抬起 
		void mpress(int,int);//	鼠标点击 
		void mmove(int,int);//	鼠标偏移 (Ctrl+Click for more info) 
		void mgoto(int,int);//	鼠标瞬移 
};


class classwindow
{//窗口 
	public:
		void win_hide(HWND);//	窗口隐藏
		void win_show(HWND);//	窗口显示 
		void close();//         关闭程序
		void setcolor(string,unsigned short);//	设置颜色 详见https://cloud.tencent.com/developer/article/1732036 
		HWND GetWinInfo();
		void WinMinSize(HWND);//最小化 hwnd 所代表的窗口 
		void WinMaxSize(HWND);//最大化 hwnd 所代表的窗口 
	private:
		DWORD setcolormod(string);
};

class classgames
{
	public:
//classes 
		classkeybd keybd;
		classmouse mouse;
		classwindow window;
		
//functions
		void gotoxy(int,int);//	光标瞬移 
};


void classkeybd::up(int vk) {keybd_event(vk,0,KEYEVENTF_EXTENDEDKEY|0,0);}
void classkeybd::down(int vk) {keybd_event(vk,0,KEYEVENTF_EXTENDEDKEY|KEYEVENTF_KEYUP,0);}
void classkeybd::press(int vk,int time) {down(vk);Sleep(time);up(vk);}
bool classkeybd::key_down(int vk) {return (GetAsyncKeyState(vk) & 0x8000);} 

void classmouse::mdown(int mod) {mouse_event(mousemap[mod][0],0,0,0,0);}
void classmouse::mup(int mod) {mouse_event(mousemap[mod][1],0,0,0,0);}
void classmouse::mpress(int mod,int time) {mdown(mod);Sleep(time);mup(mod);}
void classmouse::mmove(int dx,int dy) {mouse_event(MOUSEEVENTF_MOVE,dx,dy,0,0);}//dx: 水平方向位移,正向向右   dy:垂直方向位移,正向向下
void classmouse::mgoto(int x,int y) {SetCursorPos(x%PC_X,y%PC_Y);}

void classgames::gotoxy(int x,int y) {CONSOLE_SCREEN_BUFFER_INFO csbiInfo;HANDLE hConsoleOut;hConsoleOut=GetStdHandle(STD_OUTPUT_HANDLE);GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);csbiInfo.dwCursorPosition.Y=x;csbiInfo.dwCursorPosition.X=y;SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);}

void classwindow::win_hide(HWND hWnd) {ShowWindow(hWnd,SW_HIDE);}
void classwindow::win_show(HWND hWnd) {ShowWindow(hWnd,1);}
void classwindow::close() {setcolor("output",15);HWND hWnd=GetForegroundWindow();ShowWindow(hWnd,SW_HIDE);exit(0);} 
void classwindow::setcolor(string mod,unsigned short color) {SetConsoleTextAttribute(GetStdHandle(setcolormod(mod)),color);}
DWORD classwindow::setcolormod(string mod) {if(mod=="output")return STD_OUTPUT_HANDLE;if(mod=="input")return STD_INPUT_HANDLE;if(mod=="error")return STD_ERROR_HANDLE;}
HWND classwindow::GetWinInfo() {return GetForegroundWindow();}
void classwindow::WinMaxSize(HWND hWnd) {ShowWindow(hWnd,SW_MAXIMIZE);}//hWnd可选填games.window.GetWinInfo() 
void classwindow::WinMinSize(HWND hWnd) {ShowWindow(hWnd,SW_MINIMIZE);}//hWnd可选填games.window.GetWinInfo() 


主函数模板:

#include "你设置的该头文件的名称.后缀名"
classgames 名称;
int main()
{
	//命令格式为:	名称.XXX
	//如:			名称.window.close
}
2022/1/3 20:32
加载中...