📄 mainunit.cpp
字号:
TrayIcon->Animate = 0;
StatusBar->Panels->Items[0]->Text = "连接失败";
CANGOON=0;
}
continue;
}
CODE->Text = HTTP->Body;
if(CODE->Text.Length()!=171){
//课程名
BEGIN=25;LENGTH=CODE->Strings[4].AnsiPos("</font>")-BEGIN;
CLASSNO=NUMBERS->Items->Item[i]->Caption;
CLASSNAME=CODE->Strings[4].SubString(BEGIN,LENGTH);
//限选
BEGIN=CODE->Strings[4].AnsiPos("限制人数:")+10;LENGTH=CODE->Strings[4].AnsiPos(" 已选人数:")-BEGIN;
LIMIT=CODE->Strings[4].SubString(BEGIN,LENGTH);
//已选
BEGIN=CODE->Strings[4].AnsiPos("已选人数:")+10;LENGTH=CODE->Strings[4].Length() -BEGIN+1;
USED=CODE->Strings[4].SubString(BEGIN,LENGTH);
EACH_TYPE=NUMBERS->Items->Item[i]->SubItems->Strings[0];
EACH_STRING=NUMBERS->Items->Item[i]->SubItems->Strings[1];
}
else //不存在的课程
{
CLASSNO=NUMBERS->Items->Item[i]->Caption;
CLASSNAME="<不存在的课程>";
LIMIT="0";
USED="0";
EACH_TYPE=NUMBERS->Items->Item[i]->SubItems->Strings[0];
EACH_STRING=NUMBERS->Items->Item[i]->SubItems->Strings[1];
}
ClassView->Items->Item[i]->Caption=CLASSNO;
ClassView->Items->Item[i]->SubItems->Strings[0]=CLASSNAME;
ClassView->Items->Item[i]->SubItems->Strings[1]=LIMIT;
ClassView->Items->Item[i]->SubItems->Strings[2]=USED;
ClassView->Items->Item[i]->SubItems->Strings[4]=EACH_TYPE;
ClassView->Items->Item[i]->SubItems->Strings[5]=EACH_STRING;
if(LIMIT=="无限制"||StrToInt(USED)<StrToInt(LIMIT))
{
HaveSeat=1;
ClassView->Items->Item[i]->SubItems->Strings[3]="有空位";
if(UseRing){ //声音提示
if(RingFile=="SYSTEMBEEP") MessageBeep(MB_ICONEXCLAMATION);
else
{
if(FileExists(RingFile)) PlaySound(RingFile.c_str(),NULL,SND_ASYNC);
}
}
if(UseAutoCopy){ //复制到粘帖板
TEdit *tempedit = new TEdit(Handle);
tempedit->Visible=0;
tempedit->Text = CLASSNO;
tempedit->SelectAll();
tempedit->CopyToClipboard();
delete tempedit;
}
if(UseAutoChoose->Checked)//自动选课
{
unsigned long TIME;unsigned long DELAY=1000;//延时
CppWebBrowser->Navigate(Variant("about:blank"));
while(CppWebBrowser->Busy) Application->ProcessMessages();
TIME=GetTickCount();
while(GetTickCount()-(long)TIME<DELAY) Application->ProcessMessages();
CppWebBrowser->Navigate(Variant(LoginURL+"?stu_no="+Stu_no+"&passwd="+Passwd));
while(CppWebBrowser->Busy) Application->ProcessMessages();
TIME=GetTickCount();
while(GetTickCount()-(long)TIME<DELAY) Application->ProcessMessages();
CppWebBrowser->Navigate(Variant(ChooseURL+"?no_type="+CLASSNO+"+"+EACH_TYPE+"&action=选 课"));
while(CppWebBrowser->Busy) Application->ProcessMessages();
TIME=GetTickCount();
while(GetTickCount()-(long)TIME<DELAY) Application->ProcessMessages();
ClassView->Items->Item[i]->SubItems->Strings[3]="尝试选课";
}
StatusBar->Panels->Items[1]->Text = "发现课程 "+CLASSNAME+"("+CLASSNO+") 有空位,请尽快选课!";
}
else
{
if(ClassView->Items->Item[i]->SubItems->Strings[3]=="尝试选课")
ClassView->Items->Item[i]->SubItems->Strings[3]="选课成功";
else
ClassView->Items->Item[i]->SubItems->Strings[3]="";
}
}//for
if(HaveSeat)//若有位置
{
TrayIcon->Animate = 1;
}
else
{
TrayIcon->Animate = 0;
TrayIcon->IconIndex=0;
StatusBar->Panels->Items[1]->Text = "";
}
if(UseAutoChoose->Checked)//判断是否全部要选的课程都已经选择完毕
{
for(int i=0;i<ClassView->Items->Count;i++){
if(ClassView->Items->Item[i]->SubItems->Strings[3]!="选课成功") AllFinished=0;
}
if(AllFinished) CANGOON=0;//已经全部选课成功 ,可以停止检索
}
if(!CANGOON)//停止检索
{
EndScanClick(Sender);
return;
}
Timer->Enabled = 1;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N4Click(TObject *Sender)
{//打开选项窗口
OptionForm = new TOptionForm(Application->Owner);
OptionForm->CH01->Checked = UseAutoCopy;
if(RingFile=="SYSTEMBEEP") OptionForm->CH02_OP01->Checked = 1;
else {OptionForm->CH02_OP02->Checked = 1;OptionForm->CH02_OP02_ADD->Text = RingFile;}
OptionForm->CH02->Checked = UseRing;
OptionForm->CH02Click(Sender);
OptionForm->CH00->Checked = UseAutoRelink;
OptionForm->HotKey->HotKey = Hotkey;
OptionForm->ShowModal();
delete OptionForm;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N2Click(TObject *Sender)
{//退出程序
Close();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::NUMBERSSelectItem(TObject *Sender,
TListItem *Item, bool Selected)
{//选中程序时,控制相应按钮是否有效
if(Selected){
ADDCLASS->Text = Item->Caption;
TYPE->ItemIndex = TYPE->Items->IndexOf(Item->SubItems->Strings[0]);
STRING->Text = Item->SubItems->Strings[1];
ClassModi->Enabled = 1;
ClassNoMenu->AutoPopup = 1;
}
else{
ClassModi->Enabled = 0;
ClassNoMenu->AutoPopup = 0;
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ClassModiClick(TObject *Sender)
{ //修改课程信息
if(ADDCLASS->Text.Trim() == ""){Beep();return;}
NUMBERS->Selected->Caption = ADDCLASS->Text.Trim();
NUMBERS->Selected->SubItems->Strings[0] = TYPE->Text;
NUMBERS->Selected->SubItems->Strings[1] = STRING->Text;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::RegHotkey()
{ //注册热键
UnregisterHotKey(Handle,HotkeyID);
if(Hotkey!=0){
Word TheKey;
TShiftState TheShiftState;
ShortCutToKey(Hotkey, TheKey, TheShiftState);
UINT UINTShiftState=0;
if(TheShiftState.Contains(ssShift)) UINTShiftState+=MOD_SHIFT;
if(TheShiftState.Contains(ssCtrl)) UINTShiftState+=MOD_CONTROL;
if(TheShiftState.Contains(ssAlt)) UINTShiftState+=MOD_ALT;
if(!RegisterHotKey(Handle,HotkeyID,UINTShiftState,TheKey))
Application->MessageBox("热键注册失败,该热键很可能已经被其他程序注册,请尝试注册另一个热键。","EasyClass - 错误",MB_ICONERROR);
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormShow(TObject *Sender)
{
RegHotkey();
CppWebBrowser->Hide();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N1Click(TObject *Sender)
{
TrayIcon->Restore();
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::UseAutoChooseClick(TObject *Sender)
{
EnterUser->Enabled = UseAutoChoose->Checked;
EnterPass->Enabled = UseAutoChoose->Checked;
if(UseAutoChoose->Checked&&(Stu_no==""||Passwd==""))
{
Stu_no=InputBox("EasyClass - 请输入学号", "学号 ", "");
Passwd=InputBox("EasyClass - 请输入密码", "密码 ", "");
if(Stu_no==""||Passwd=="") UseAutoChoose->Checked=0;
}
TIPS->Visible = UseAutoChoose->Checked;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::EnterPassClick(TObject *Sender)
{
Passwd=InputBox("EasyClass - 请输入密码", "密码 ", "");
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::EnterUserClick(TObject *Sender)
{
Stu_no=InputBox("EasyClass - 请输入学号", "学号 ", "");
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::N11Click(TObject *Sender)
{
TListView *templist;
if(NUMBERS->Focused()) templist = NUMBERS;
else templist = ClassView;
TEdit *tempedit = new TEdit(Handle);
tempedit->Visible=0;
tempedit->Text = templist->Selected->Caption;
tempedit->SelectAll();
tempedit->CopyToClipboard();
templist=NULL;
delete tempedit;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ClassViewSelectItem(TObject *Sender,
TListItem *Item, bool Selected)
{
if(Selected)
ClassNoMenu->AutoPopup = 1;
else
ClassNoMenu->AutoPopup = 0;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -