⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 global.h

📁 我们学校牛人开发的选课外挂源代码
💻 H
字号:
#ifndef YBJJ_GLOBAL
#define YBJJ_GLOBAL

//=======================================
// 一些常量定义
//=======================================

#define PALVERSION  0x300       
#define MAXPALETTE  256

#define TIMER_RECV_TIMEOUT 10000				//每个socket超时时间
/*
#ifdef _DEBUG
#define TIMER_SELECT_TIMEOUT	2				//20秒
#else
#define TIMER_SELECT_TIMEOUT	20				//20秒
#endif
*/
#define POSTCOURSE_BUFFER_SIZE 1024*10			//自动选课每个线程的buffer

#define MAX_COURSE		50
#define COLUMN_COUNT	7
#define MAX_LOADSTRING 100
#define WM_TRAY WM_USER+1111

#define MAIN_BUFFER_SIZE 1024*512
#define SEND_BUFFER_SIZE 1536


//=======================================
// 结构体定义
//=======================================

struct struct_mystatus
{
	int		Busy;
	bool	LOGINED;			//是否已登录
	bool	CanAuto;			//是否可以自动选课
	bool	Autoing;			//是否正在自动选课				
	short	post;				//记录提交的次数
};

struct struct_get
{
	char ctable[20];
	char ntable_type[5];
	char ccolumns[150];
	char cclauses[500];
	char nrow_min[5];
	char nrow_max[5];
};

struct struct_http_head
{
	char *Host;
	char *Path;
	char *IPA;
	int PORT;
};
	
struct thread_param
{
	TCHAR SendBuffer[SEND_BUFFER_SIZE];
	TCHAR SendBuffer2[SEND_BUFFER_SIZE];
	HWND hProgress;
	BYTE Analysis;
	bool NeedBuffer2;
};



//=======================================
// 外部变量定义
//=======================================

extern char *USER_AGENT;
extern char *ACCEPT_LANGUAGE;
extern char *ACCEPT_ENCODING;
extern char *CONTENT_TYPE;

// Global Variables:
extern HINSTANCE hInst;								// current instance
extern TCHAR szTitle[MAX_LOADSTRING];								// The title bar text
extern SOCKET hSocket;
extern HWND hLCD;
extern HWND hMain,hSplash;
extern HWND hDlgQuery,hList1;
extern HWND hDlgCancel,hList2;
extern HWND hDlgChoose;
extern HWND hDlgLogin;
extern HWND hDlgArrangement,hList4,hList5;
extern HWND hDlgAuto;
extern HWND hStatusBar;
extern HMENU m,m2;
extern HFONT hFont;
extern unsigned short int	g_iServer;		//使用那个服务器
extern long	g_iTimeOut;			//线程超时
extern long	g_iMaxThread;		//最大线程数
extern long	g_iCountThread;		//当前线程数

extern WNDPROC oldWndProc1;			//存放List1的原有WndProc
extern TCHAR UserName[10];				//用于存放学号
extern TCHAR PassWord[30];				//用于存放密码
extern TCHAR CourseName[50][3];			//用于存放课程名
extern TCHAR UserCookie[100];			//存储HTTP头中的User-Cookie字段
//HWND CW[MAX_COURSE][COLUMN_COUNT];//用于存储课程选择对话框里那些控件句柄
								//COLUMN0为课程名称AUTOCHECKBOX ||COLUMN6为服从分配AUTOCHECKBOX ||中间为5项志愿的COMBOBOX
//HWND CW2[MAX_COURSE+8];			//存放课程选择上半部分||后四个存放已提交**学分,已选中**学分||再后两个存放提交课程号的edit及其配套标签||再后两个存放提交课序号的edit及其配套标签
//TCHAR KW[MAX_COURSE][8+1];		//前7位课程号,第8位为0,第9位为课程属性 (1=必修,2=限选,3=任选)
//TCHAR KW2[MAX_COURSE][10];		//上半部分
								
extern const TCHAR signature1[6];

extern struct struct_mystatus mystatus;
extern struct struct_get myget;
extern struct struct_http_head *now_http_head;

extern struct_http_head http_head1;
extern struct_http_head http_head2;
extern struct_http_head http_head3;
extern struct_http_head http_head_custom;
extern struct_http_head http_head_debug;



//=======================================
// 函数定义
//=======================================
ATOM				MyRegisterClass(HINSTANCE hInstance);
BOOL				InitInstance(HINSTANCE);
LRESULT CALLBACK	WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK    WndProcDlgQuery(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK	WndProcDlgCanceled(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK	WndProcDlgChoose(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK	WndProcDlgLogin(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK	WndProcDlgArrangement(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK	WndProcDlgAuto(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK	WndProcDlgCustom(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK	WndProcList1(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK	WndProcSplash(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
void SplashWindow();
void ShowTip(TCHAR *Text,TCHAR *Title=szTitle);
void lout(char *Text);
void lstrcatutf8(const char *string1,char *string2);

void LogOFF(TCHAR *tips);
void LogIN();
unsigned int __stdcall SendThread(LPVOID lParam);

void CopyRight();
PCHAR AnalysisHttpHeader(char *R);
void Analysis1(char *R);		//分析课程查询
void Analysis2(char *R);		//分析停课查询
void Analysis3(char *R);		//分析我选的课
void Analysis4(char *R);		//分析是否成功登录
void Analysis5(char *R);		//分析是否成功退出登录
void Analysis6(char *R);		//分析本学期课表
void Analysis7(char *R);		//分析是否可以自动选课
void Analysis8(char *Buffer,int seq);		//分析是否自动选课成功

void Analysis10(char *B);		//分析应该连接到交大服务器还是清华服务器
bool AnalysisFooter(char *Buffer);	//分析本学期课表

bool Locate(char *str,char *Start,char *End,int *pos,int *length);
//输入str==在这个字符串里寻找,Start==前匹配字符串
//输出*pos,找到的前匹配字符串的相对位置,*length前后匹配所夹字串的长度

void GetDefault(TCHAR *PAGE, int Analysis);
//void GetUserMessage();
unsigned int __stdcall  ThreadForPostCourse(PVOID lParam);
unsigned int __stdcall	ThreadForSchedule(PVOID lParam);
void EnableDlgItem(HWND hDlg,int nID,bool bEnable);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -