上传文件至 /
initial commit
This commit is contained in:
136
selfMonitor.cpp
Normal file
136
selfMonitor.cpp
Normal file
@@ -0,0 +1,136 @@
|
|||||||
|
#pragma comment(linker, "/subsystem:\"Windows\" /entry:\"mainCRTStartup\"")
|
||||||
|
#include<windows.h>
|
||||||
|
#include<iostream>
|
||||||
|
#include<cstdlib>
|
||||||
|
#include<cstring>
|
||||||
|
#include<ctime>
|
||||||
|
using namespace std;
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
const int BLACK_LIST_SIZE = 3;
|
||||||
|
string blackList[]={"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>","MuMuģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>","֪<EFBFBD><EFBFBD>"};
|
||||||
|
int blackListTimeCount = 0;
|
||||||
|
const int MAX_BLACKLIST_TIME_COUNT = 1800;
|
||||||
|
const int TOLENT_MORE_TIME = 1200;
|
||||||
|
void saveData(){
|
||||||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䵽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];
|
||||||
|
// <20><>save.txt<78>ж<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
||||||
|
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){
|
||||||
|
// <20>ж<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
time_t now = time(0);
|
||||||
|
tm *ltm = localtime(&now);
|
||||||
|
if(ltm->tm_hour==4&<m->tm_min==0){
|
||||||
|
blackListTimeCount = 0;
|
||||||
|
}
|
||||||
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>㴰<EFBFBD><E3B4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
HWND hwnd = GetForegroundWindow();
|
||||||
|
if (hwnd == NULL) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if(GetWindowTextA(hwnd, title, 1024) == 0){
|
||||||
|
cout<<"GetWindowTextW failed"<<endl;
|
||||||
|
cout<<"hwnd: "<<hwnd<<endl;
|
||||||
|
cout<<"Error code: "<<GetLastError()<<endl;
|
||||||
|
Sleep(1000);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
cout<<"*"<<title<<endl;
|
||||||
|
// <20>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
bool isInBlackList = false; string strTitle = title;
|
||||||
|
for(int i=0;i<BLACK_LIST_SIZE;i++){
|
||||||
|
if(strTitle.find(blackList[i])!=string::npos){
|
||||||
|
isInBlackList = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cout<<"*"<<title<<endl<<isInBlackList<<endl;
|
||||||
|
if(isInBlackList){
|
||||||
|
cout<<hwnd<<','<<title<<"\n";
|
||||||
|
blackListTimeCount++;
|
||||||
|
if(blackListTimeCount>=MAX_BLACKLIST_TIME_COUNT){
|
||||||
|
muteAll();
|
||||||
|
bool isContinue = true;
|
||||||
|
isContinue = MessageBoxA(hwnd, "<EFBFBD><EFBFBD>Сʱ<EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Сʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_YESNO) == IDYES;
|
||||||
|
if(isContinue){
|
||||||
|
MessageBoxA(hwnd, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD>Ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʮ<EFBFBD>Σ<EFBFBD>", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>취<EFBFBD><EFBFBD>", MB_OK);
|
||||||
|
for(int i=0;i<10;i++){
|
||||||
|
int randNum = rand()&1;
|
||||||
|
if(randNum){
|
||||||
|
isContinue = MessageBoxA(hwnd, "<EFBFBD><EFBFBD>˼<EFBFBD><EFBFBD>һ<EFBFBD>£<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD>Եı<EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʲô<EFBFBD><EFBFBD>\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˰<EFBFBD>ȷ<EFBFBD><EFBFBD>", "<EFBFBD><EFBFBD>˼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˼<EFBFBD><EFBFBD>", MB_YESNO) == IDYES;
|
||||||
|
}else{
|
||||||
|
isContinue = MessageBoxA(hwnd, "<EFBFBD><EFBFBD>˼<EFBFBD><EFBFBD>һ<EFBFBD>£<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD>Եı<EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʲô<EFBFBD><EFBFBD>\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˰<EFBFBD>ȡ<EFBFBD><EFBFBD>", "<EFBFBD><EFBFBD>˼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˼<EFBFBD><EFBFBD>", MB_YESNO) == IDNO;
|
||||||
|
}
|
||||||
|
if(!isContinue){
|
||||||
|
MessageBoxA(hwnd, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㲢û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ء<EFBFBD><EFBFBD><EFBFBD>", "̾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unmuteAll();
|
||||||
|
if(isContinue){
|
||||||
|
MessageBoxA(hwnd, "<EFBFBD>ðɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷʵ<EFBFBD>м<EFBFBD><EFBFBD>£<EFBFBD>ȥæ<EFBFBD>ɣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö<EFBFBD>ʮ<EFBFBD><EFBFBD><EFBFBD>Ӻ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD>", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>æ<EFBFBD><EFBFBD>", MB_OK);
|
||||||
|
blackListTimeCount = MAX_BLACKLIST_TIME_COUNT - TOLENT_MORE_TIME;
|
||||||
|
}else{
|
||||||
|
MessageBoxA(hwnd, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǧ<EFBFBD>ּг<EFBFBD><EFBFBD>ƶ<EFBFBD><EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>첻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD>ƹص<EFBFBD><EFBFBD><EFBFBD>","True Ending",MB_OK);
|
||||||
|
Sleep(5*1000);
|
||||||
|
// ǿ<>ƹر<C6B9>hwnd<6E><64><EFBFBD><EFBFBD>
|
||||||
|
PostMessageA(hwnd, WM_CLOSE, 0, 0);
|
||||||
|
}
|
||||||
|
}else if(blackListTimeCount%600==0){
|
||||||
|
muteAll();
|
||||||
|
MessageBoxA(hwnd, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>ʮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>£<EFBFBD>", "ʮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK);
|
||||||
|
unmuteAll();
|
||||||
|
}else if(blackListTimeCount%300==0){
|
||||||
|
muteAll();
|
||||||
|
MessageBoxA(hwnd, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>Ϣ", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK);
|
||||||
|
unmuteAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// <20><>ʱ
|
||||||
|
Sleep(1000);
|
||||||
|
static int clockCount = 0;
|
||||||
|
clockCount++;
|
||||||
|
if(clockCount%60==0){
|
||||||
|
saveData();
|
||||||
|
}
|
||||||
|
// cout<<title<<endl;
|
||||||
|
// cout<<"blackListTimeCount: "<<blackListTimeCount<<endl;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user