📄 ybjj.cpp
字号:
// 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 + -