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

📄 ybjj.cpp

📁 我们学校牛人开发的选课外挂源代码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
			//		case 1:
			//			Alpha++;
			//			PostMessage(hWnd,WM_PRINT,0,0);
			//			break;
		case 2:
			DestroyWindow(hWnd);
			break;
		}
		break;   
		
		// Draw the window
		/*	case WM_PAINT:
		hdc = BeginPaint (hWnd, &ps);
        _ShowBitmap(hWnd, IDB_SPLASH, hdc);
        EndPaint (hWnd, &ps);
		break;*/
		case WM_PRINT:
			if (!(lParam & PRF_CLIENT)) 
				return (DefWindowProc(hWnd, message, wParam, lParam));
			ShowBitmap(hWnd, IDB_SPLASH, (HDC)wParam);
			break;
		case WM_DESTROY:
			MessageBox(0,_T("爱交大,爱烟白\r\n请关注特思论坛http://bbs.bjtu.org,获取烟白姐姐系列软件最新版本"),szTitle,MB_ICONINFORMATION);
			ShowWindow(hMain,SW_SHOW);
			break;
			
		default:
			return (DefWindowProc(hWnd, message, wParam, lParam));
    }
    return (0);
}

LRESULT CALLBACK WndProc(HWND hMain, UINT message, WPARAM wParam, LPARAM lParam)
{
	int wmId, wmEvent;
	
	switch (message) 
	{
	case WM_COMMAND:
		thread_param *tp;
		wmId    = LOWORD(wParam); 
		wmEvent = HIWORD(wParam); 
		// Parse the menu selections:
		switch (wmId)
		{
		case IDM_AUTO:
#ifndef _DEBUG
			if (!mystatus.LOGINED )
			{
				MessageBox(0,_T("请您登录后再使用"),szTitle,MB_ICONWARNING);
				break;
			}
#endif
			if (hDlgAuto)
			{
				ShowWindow(hDlgAuto,true);
				SetFocus(hDlgAuto);
			}
			else
			{
				hDlgAuto=CreateDialog(hInst, (LPCTSTR)IDD_AUTOBOX, hMain, (DLGPROC)WndProcDlgAuto);
				CheckDlgButton(hDlgAuto,IDC_AUTO_CONNECT,true);
			}
			
			break;
			
		case IDM_ABOUT:
			CopyRight();
			SplashWindow();
			
			break;
		case IDM_QUERY:
			if (hDlgQuery)
			{
				SetFocus(hDlgQuery);
			}
			else
			{
				hDlgQuery=CreateDialog(hInst, (LPCTSTR)IDD_QUERYBOX, hMain, (DLGPROC)WndProcDlgQuery);
			}
			break;
		case IDM_CHOOSE:
			MessageBox(0,_T("请您使用官方提供的网页来进行手动选课。"),szTitle,MB_ICONWARNING);
			break;
			/*				
			#ifndef _DEBUG
			if (!mystatus.LOGINED )
			{
			MessageBox(0,_T("请您登录后再使用"),szTitle,MB_ICONWARNING);
			break;
			}
			if (MessageBox(0,_T("本程序的这项功能可能存在BUG\r\n强烈推荐您使用官方提供的网页来进行手动选课。\r\n您仍然要继续吗?"),szTitle,MB_ICONQUESTION | MB_YESNO)==IDNO) break;
			
			  #endif
			  if (hDlgChoose)
			  {
			  ShowWindow(hDlgChoose,SW_SHOW);
			  SetFocus(hDlgChoose);
			  }
			  else
			  {
			  hDlgChoose=CreateDialog(hInst, (LPCTSTR)IDD_CHOOSEBOX, hMain, (DLGPROC)WndProcDlgChoose);
			  }
			break;*/
		case IDM_CANCELED:
			if (hDlgCancel)
			{
				ShowWindow(hDlgCancel,SW_SHOW);
				SetFocus(hDlgCancel);
			}
			else
			{
				hDlgCancel=CreateDialog(hInst, (LPCTSTR)IDD_CANCELEDBOX, hMain, (DLGPROC)WndProcDlgCanceled);
			}
			break;
		case IDM_LOGIN:
			DialogBox(hInst, (LPCTSTR)IDD_LOGINBOX, hMain, (DLGPROC)WndProcDlgLogin);
			break;
		case IDM_LOGOUT:
			if (mystatus.LOGINED )
			{
				if (mystatus.Busy )
				{
					MessageBox(0,_T("您正在进行其他查询,请稍候再试"),szTitle,MB_ICONINFORMATION);
				}
				else
				{
					GetDefault(_T("XK1.Logout"),5);
				}
			}
			else
			{
				MessageBox(0,_T("您还没有登录"),szTitle,MB_ICONINFORMATION);
			}
			break;
		case IDM_ARRANGEMENT:
#ifndef _DEBUG
			if (!mystatus.LOGINED )
			{
				MessageBox(0,_T("请您登录后再使用"),szTitle,MB_ICONWARNING);
				break;
			}
#endif
			if (hDlgArrangement)
			{
				ShowWindow(hDlgArrangement,SW_SHOW);
				SetFocus(hDlgArrangement);
			}
			else
			{
				hDlgArrangement=CreateDialog(hInst, (LPCTSTR)IDD_ARRANGEMENTBOX, hMain, (DLGPROC)WndProcDlgArrangement);
			}
			
			break;
		case IDM_TRAY_RETURN:
			
			ShowWindow(hMain,true);
			ShowWindow(hDlgAuto,true);
			break;
		case IDM_TRAY_PAUSE:
			KillTimer(hMain,2);
			EnableMenuItem(m,IDM_TRAY_PAUSE,MF_GRAYED);
			EnableMenuItem(m,IDM_TRAY_CONTINUE,MF_ENABLED);
			break;
		case IDM_TRAY_CONTINUE:
			SetTimer(hMain,2,SendDlgItemMessage(hDlgAuto,IDC_SPIN1,UDM_GETPOS,0,0),0);
			EnableMenuItem(m,IDM_TRAY_PAUSE,MF_ENABLED);
			EnableMenuItem(m,IDM_TRAY_CONTINUE,MF_GRAYED);
			break;
		case IDM_HIDE_MAIN:
			ShowWindow(hMain,false);
			ShowWindow(hDlgAuto,false);
			break;
		case IDM_SERVER_AUTO:
		case IDM_SERVER_NJTU:
		case IDM_SERVER_TSINGHUA:
		case IDM_SERVER_CUSTOM:
		case IDM_SERVER_DEBUG:
			if (mystatus.LOGINED )
			{
				MessageBox(hMain,_T("您已经登录,请退出登录后再切换服务器"),szTitle,MB_ICONWARNING);
				break;
			}
			
			if ( wmId == IDM_SERVER_CUSTOM )
			{
				if ( MessageBox(hMain, _T("这些选项仅供计算机高手使用,如果您完全不懂TCP/IP协议和HTTP协议,请使用“自动选择服务器”\r\n您确定要继续吗?"),szTitle,MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2)==IDNO)
				{
					break;
				}
				DialogBox(hInst,(LPCTSTR)IDD_DIALOG_OPTION,hMain,(DLGPROC)WndProcDlgCustom);
			}
			else
			{
				if ( wmId != IDM_SERVER_AUTO && wmId != IDM_SERVER_DEBUG)
				{
					if ( MessageBox(hMain, _T("如果您不清楚选课阶段与服务器的对应关系,请使用“自动选择服务器”\r\n您确定要继续吗?"),szTitle,MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2)==IDNO)
					{
						break;
					}
				}
				
				g_iServer = wmId;
				HMENU hMenu;
				hMenu = GetMenu(hMain);
				CheckMenuItem(hMenu,IDM_SERVER_DEBUG,MF_BYCOMMAND | MF_UNCHECKED);
				CheckMenuItem(hMenu,IDM_SERVER_AUTO,MF_BYCOMMAND | MF_UNCHECKED);
				CheckMenuItem(hMenu,IDM_SERVER_NJTU,MF_BYCOMMAND | MF_UNCHECKED);
				CheckMenuItem(hMenu,IDM_SERVER_TSINGHUA,MF_BYCOMMAND | MF_UNCHECKED);
				CheckMenuItem(hMenu,IDM_SERVER_CUSTOM,MF_BYCOMMAND | MF_UNCHECKED );
				CheckMenuItem(hMenu,wmId,MF_BYCOMMAND |MF_CHECKED);
			}
			break;
			
			
			break;
		case IDM_LIST1_COPY:
			
			TCHAR *buff;
			HGLOBAL hGlobal;
			
			hGlobal=GlobalAlloc(GHND,10);
			if (hGlobal==0) break;
			
			
			if (OpenClipboard(hList1))
			{
				if (EmptyClipboard())
				{
					buff=(TCHAR*)GlobalLock(hGlobal);
					ListView_GetItemText(hList1,ListView_GetSelectionMark(hList1),0,buff,9);
					GlobalUnlock(hGlobal);
					if (SetClipboardData(CF_TEXT,hGlobal))
					{
						//成功
					}
					else
					{
						GlobalFree(hGlobal);
					}
					
				}
				else
				{
					MessageBox(0,_T("清空剪贴板失败"),szTitle,MB_ICONERROR);
				}
				
				CloseClipboard();
				
			}
			else
			{
				MessageBox(0,_T("使用剪贴板失败"),szTitle,MB_ICONERROR);
			}
			break;
		case IDM_LIST1_AUTO:
			TCHAR buff1[10];
			int pos1;
			
			PostMessage(hMain,WM_COMMAND,IDM_AUTO,0);
			if (hDlgAuto==0)
			{
				PostMessage(hMain,WM_COMMAND,IDM_LIST1_AUTO,0);
			}
			pos1=ListView_GetSelectionMark(hList1);
			
			if (GetDlgItemText(hDlgAuto,IDC_EDIT1,buff1,sizeof(buff1))==0)
			{
				ListView_GetItemText(hList1,pos1,0,buff1,9);
				SetDlgItemText(hDlgAuto,IDC_EDIT1,buff1);
				ListView_GetItemText(hList1,pos1,1,buff1,9);
				SetDlgItemText(hDlgAuto,IDC_EDIT4,buff1);
			}
			else
			{
				if (GetDlgItemText(hDlgAuto,IDC_EDIT2,buff1,sizeof(buff1))==0)
				{
					ListView_GetItemText(hList1,pos1,0,buff1,9);
					SetDlgItemText(hDlgAuto,IDC_EDIT2,buff1);
					ListView_GetItemText(hList1,pos1,1,buff1,9);
					SetDlgItemText(hDlgAuto,IDC_EDIT5,buff1);
				}
				else
				{
					if (GetDlgItemText(hDlgAuto,IDC_EDIT3,buff1,sizeof(buff1))==0)
					{
						ListView_GetItemText(hList1,pos1,0,buff1,9);
						SetDlgItemText(hDlgAuto,IDC_EDIT3,buff1);
						ListView_GetItemText(hList1,pos1,1,buff1,9);
						SetDlgItemText(hDlgAuto,IDC_EDIT6,buff1);
					}
					else
					{
						MessageBox(0,_T("三个自动选课栏已满,请清空任意一栏"),szTitle,MB_ICONINFORMATION);
						
					}
					
				}
			}					
			break;
			
		case IDM_LIST1_CHOOSE:
			TCHAR buff2[10];
			
			ListView_GetItemText(hList1,ListView_GetSelectionMark(hList1),9,buff2,9);
			if (lstrlen(buff2)==1)
			{
				if (buff2[0]=='0')
				{
					if (MessageBox(0,_T("该课程已经没有课余量,仍然要提交么?"),szTitle,MB_ICONQUESTION | MB_YESNO)==IDNO)
						break;
				}
			}
			
			tp= new thread_param;
			lstrcpy(tp->SendBuffer2,_T("aInsertKch="));
			ListView_GetItemText(hList1,ListView_GetSelectionMark(hList1),0,buff2,9);
			lstrcat(tp->SendBuffer2,buff2);
			lstrcat(tp->SendBuffer2,_T("&aInsertKxh="));
			ListView_GetItemText(hList1,ListView_GetSelectionMark(hList1),1,buff2,9);
			lstrcat(tp->SendBuffer2,buff2);
			
			_itot(lstrlen(tp->SendBuffer2),buff2,10);
			
			RtlZeroMemory(tp->SendBuffer,sizeof(tp->SendBuffer));
			lstrcpy(tp->SendBuffer,_T("POST "));
			lstrcat(tp->SendBuffer,now_http_head->Path );
			lstrcat(tp->SendBuffer,_T("XK1.CourseInput HTTP/1.1\r\n"));
			lstrcat(tp->SendBuffer,_T("Referer: http://"));
			lstrcat(tp->SendBuffer,now_http_head->Host ); 
			lstrcat(tp->SendBuffer,now_http_head->Path );
			lstrcat(tp->SendBuffer,_T("XK1.CourseInput\r\n"));
			lstrcat(tp->SendBuffer,ACCEPT_LANGUAGE);
			lstrcat(tp->SendBuffer,CONTENT_TYPE);
			lstrcat(tp->SendBuffer,USER_AGENT);
			lstrcat(tp->SendBuffer,_T("Host: "));
			lstrcat(tp->SendBuffer,now_http_head->Host );
			lstrcat(tp->SendBuffer,_T("\r\nConnection: close\r\n"));
			lstrcat(tp->SendBuffer,_T("Cache-Control: no-cache\r\n"));
			lstrcat(tp->SendBuffer,UserCookie);
			lstrcat(tp->SendBuffer,_T("Content-Length: "));
			lstrcat(tp->SendBuffer,buff2);
			lstrcat(tp->SendBuffer,_T("\r\n\r\n"));
			
			tp->hProgress =0;
			tp->NeedBuffer2=true;
			tp->Analysis =9;
			CloseHandle((HANDLE)_beginthreadex(0,0,SendThread,(void*)tp,0,0));
#ifdef _DEBUG									
			ShowTip(tp->SendBuffer2);
#endif
			break;
		case IDM_EXIT:
			SendMessage(hDlgAuto,WM_COMMAND,IDC_STOP,0);
			PostMessage(hMain,WM_CLOSE,0,0);
			break;
		default:
			return DefWindowProc(hMain, message, wParam, lParam);
			}
			break;
			
		case WM_TIMER:
			switch(wParam)
			{
				
			case 2:
				
				TCHAR num[10];
				int len;
				short int i,left;
				left=0;
				
				for (i=0;i<3;i++)
				{
					len=GetDlgItemText(hDlgAuto,IDC_EDIT1+i,num,sizeof(num));
					if (len==0) continue;
					len=GetDlgItemText(hDlgAuto,IDC_EDIT4+i,num,sizeof(num));
					if (len==0) continue;
					_itot(mystatus.post ,num,10);
					left++;
					lout(_T("第"));
					lout(num);
					lout(_T("次正在提交...\r\n"));
					len=i<<16;
					len+=mystatus.post ++;
					CloseHandle((HANDLE)_beginthreadex(0,0,ThreadForPostCourse,(void*)len,0,0));

				}
				if (left==0) PostMessage(hDlgAuto,WM_COMMAND,IDC_STOP,0);
				break;
			}
			break;
			case WM_TRAY:
				if (lParam==WM_LBUTTONUP)
				{
					POINT p;
					HMENU a;
					a=GetSubMenu(m,0);
					GetCursorPos(&p);
					TrackPopupMenu(a,0,p.x ,p.y ,0,hMain,0);
					
				}
				break;
			case WM_CLOSE:
#ifndef _DEBUG
				AnimateWindow(hMain, 500, AW_BLEND|AW_HIDE);
#endif
				DestroyWindow(hMain);
				break;
			case WM_DESTROY:
				NOTIFYICONDATA tnid;
				tnid.cbSize=sizeof(NOTIFYICONDATA);
				tnid.hWnd=hMain;
				tnid.uID=IDR_MAINFRAME;//保证删除的是我们的图标
				Shell_NotifyIcon(NIM_DELETE,&tnid);
				PostQuitMessage(0);
				break;
			default:
				return DefWindowProc(hMain, message, wParam, lParam);
   }
   return 0;
}

⌨️ 快捷键说明

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