commit 08214df2e196487d93ab9dbcb31ad4903cb42914 Author: zjcOvO Date: Sun May 25 22:02:04 2025 +0800 上传文件至 / initial commit diff --git a/selfMonitor.cpp b/selfMonitor.cpp new file mode 100644 index 0000000..cb470d7 --- /dev/null +++ b/selfMonitor.cpp @@ -0,0 +1,136 @@ +#pragma comment(linker, "/subsystem:\"Windows\" /entry:\"mainCRTStartup\"") +#include +#include +#include +#include +#include +using namespace std; +// ºÚÃûµ¥ +const int BLACK_LIST_SIZE = 3; +string blackList[]={"ßÙÁ¨ßÙÁ¨","MuMuÄ£ÄâÆ÷","Öªºõ"}; +int blackListTimeCount = 0; +const int MAX_BLACKLIST_TIME_COUNT = 1800; +const int TOLENT_MORE_TIME = 1200; +void saveData(){ + // ±£´æºÚÃûµ¥Ê±¼äµ½save.txt + FILE *fp = fopen("save.txt", "w"); + if(fp!=NULL){ + time_t timeNow = time(0); + tm *curTime=localtime(&timeNow); + fprintf(fp, "%d %d %d %d", blackListTimeCount,curTime->tm_year,curTime->tm_mon,curTime->tm_mday); + fclose(fp); + } +} +bool beginWithMuteFlag=false; +void muteAll(){ + keybd_event(VK_SPACE, 0, 0, 0); + Sleep(1); + keybd_event(VK_SPACE, 0, KEYEVENTF_KEYUP, 0); +} +void unmuteAll(){ + keybd_event(VK_SPACE, 0, 0, 0); + Sleep(1); + keybd_event(VK_SPACE, 0, KEYEVENTF_KEYUP, 0); +} +int main(){ + ShowWindow(GetConsoleWindow(), SW_HIDE); + system("chcp 936 >>nul"); + FreeConsole(); + srand((unsigned)time(0)); + char title[1024]; + // ´Ósave.txtÖжÁÈ¡ºÚÃûµ¥Ê±¼ä + FILE *fp = fopen("save.txt", "r"); + if(fp!=NULL){ + int curYear,curMonth,curDay; + fscanf(fp, "%d%d%d%d", &blackListTimeCount,&curYear,&curMonth,&curDay); + time_t timeNow = time(0); + tm *curTime=localtime(&timeNow); + if(curTime->tm_year!=curYear||curTime->tm_mon!=curMonth||curTime->tm_mday!=curDay){ + blackListTimeCount = 0; + } + fclose(fp); + } + cout<<"Hello, Self Monitor!"; + while(true){ + // ÅжÏʱ¼äÈç¹ûÊÇÔçÉÏËĵã¾ÍÖØÖà + time_t now = time(0); + tm *ltm = localtime(&now); + if(ltm->tm_hour==4&<m->tm_min==0){ + blackListTimeCount = 0; + } + // »ñÈ¡¶¥²ã´°¿ÚÃû³Æ + HWND hwnd = GetForegroundWindow(); + if (hwnd == NULL) { + continue; + } + if(GetWindowTextA(hwnd, title, 1024) == 0){ + cout<<"GetWindowTextW failed"<=MAX_BLACKLIST_TIME_COUNT){ + muteAll(); + bool isContinue = true; + isContinue = MessageBoxA(hwnd, "°ëСʱµ½ÁË£¡ÄãÈ·¶¨ÄãÐèÒª¼ÌÐø¿´Õâ¸ö£¿", "°ë¸öСʱÌáÐÑ", MB_YESNO) == IDYES; + if(isContinue){ + MessageBoxA(hwnd, "Èç¹ûÄãÕæµÄÈ·¶¨µÄ»°£¬°´ÕÕÎÒµÄÖ¸ÁîÁ¬ÐøµãÊ®´Î£º", "°¦£¬ÄÃÄãû°ì·¨ÄØ", MB_OK); + for(int i=0;i<10;i++){ + int randNum = rand()&1; + if(randNum){ + isContinue = MessageBoxA(hwnd, "ÏÈ˼¿¼Ò»Ï£¬ÄãÏÖÔÚÕæµÄÓÐÓõçÄԵıØÒªÂð£¿\nÄãÏÖÔÚÓ¦¸Ã×öʲô£¿\nÏëºÃÁ˰´È·ÈÏ", "Çë˼¿¼Çë˼¿¼", MB_YESNO) == IDYES; + }else{ + isContinue = MessageBoxA(hwnd, "ÏÈ˼¿¼Ò»Ï£¬ÄãÏÖÔÚÕæµÄÓÐÓõçÄԵıØÒªÂð£¿\nÄãÏÖÔÚÓ¦¸Ã×öʲô£¿\nÏëºÃÁ˰´È¡Ïû", "Çë˼¿¼Çë˼¿¼", MB_YESNO) == IDNO; + } + if(!isContinue){ + MessageBoxA(hwnd, "¿´À´Ä㲢ûÓÐÕæÕý϶¨¾öÐÄÄØ¡­¡­", "Ì¾Æø¡­¡­", MB_OK); + break; + } + } + } + unmuteAll(); + if(isContinue){ + MessageBoxA(hwnd, "ºÃ°É£¬¿´À´ÄãȷʵÓм±Ê£¬È¥Ã¦°É£¬ÄãÔÙÓöþÊ®·ÖÖÓºóÎÒ»¹»á»ØÀ´µÄ£¡", "ÄãÏÈæ°É", MB_OK); + blackListTimeCount = MAX_BLACKLIST_TIME_COUNT - TOLENT_MORE_TIME; + }else{ + MessageBoxA(hwnd, "¸ù¾ÝǧáּгÇÖÆ¶¨µÄ·´ÃþÓãÌõÀý£¬Äã½ñÌì²»×¼ÔÙÃþÓãÁË£¡\nÄãÓÐÎåÃëÖÓ±£´æÖØÒªÎļþ£¬ÎÒÊýµ½Îå¾ÍÇ¿ÖÆ¹Øµô£¡","True Ending",MB_OK); + Sleep(5*1000); + // Ç¿ÖÆ¹Ø±Õhwnd´°¿Ú + PostMessageA(hwnd, WM_CLOSE, 0, 0); + } + }else if(blackListTimeCount%600==0){ + muteAll(); + MessageBoxA(hwnd, "ÄãÃþÓãÒѾ­Ê®·ÖÖÓÁË£¬±ù³ÎÃüÁîÄãͣϣ¡", "Ê®·ÖÖÓÌáÐÑ", MB_OK); + unmuteAll(); + }else if(blackListTimeCount%300==0){ + muteAll(); + MessageBoxA(hwnd, "ÄãÔÚÃþÓãÂð£¬ÓÖÃþÁËÎå·ÖÖÓÁË£¬±ù³ÎÌáÐÑÄãÕýÈ·ÐÝÏ¢", "Îå·ÖÖÓÌáÐÑ", MB_OK); + unmuteAll(); + } + } + // ÑÓʱ + Sleep(1000); + static int clockCount = 0; + clockCount++; + if(clockCount%60==0){ + saveData(); + } + // cout<