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

📄 softlock.cpp

📁 Moto E2的键盘软锁v2源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		default:					infolabel->setText("");			infolabel->setPreferredWidth(220);//设置标签			infolabel->setAutoResize(true );					infolabel2->setText(ChineseAndEnglish("===================\n键盘已锁,请按\"*\"键解锁\n==================="));			infolabel2->setPreferredWidth(220);//设置标签			infolabel2->setAutoResize(true );				break;	}	}void MyZKbMain::timerEvent(QTimerEvent* e){	static int countor=0;	static int nl_countor=0;	static int update_c=0;	static int pm_check=0;	update_c++;	Timer_countor++;	countor++;	if(Timer_countor==4)	{	ulock_flag=false;	softKey->setText(ZSoftKey::RIGHT, ChineseAndEnglish("键盘已锁"), (ZSoftKey::TEXT_PRIORITY)0);	softKey->setText(ZSoftKey::LEFT, ChineseAndEnglish(" "), (ZSoftKey::TEXT_PRIORITY)0);	if(open_music_flag==true)	{		softKey->setText(ZSoftKey::LEFT, ChineseAndEnglish(" "), (ZSoftKey::TEXT_PRIORITY)0);		open_music_flag=false;	}	}	countor=countor%3;	Timer_countor%=4;	char buf[500];   char temp_buf[200];	FILE *pp1;	  if( (pp1 = popen(" pidof alertprocess ; pidof vibrateprocess", "r")) == NULL )//system调用,检查是否有铃声或震动	         {	        printf("popen() error!\n");	         }	   fgets(temp_buf, sizeof temp_buf, pp1);//读文件	   fgets(buf, sizeof buf, pp1);//读文件	   strcat(temp_buf,buf);	   pclose(pp1);	  	if(strlen(temp_buf)>2)	   		pm_check++;	   else	   	pm_check=0;	   if(pm_check==1)	   	{	   	char buf[500];	   	FILE *pp1;	   	if( (pp1 = popen("pidof alarmclock", "r")) == NULL )//过滤闹钟进程	   			printf("error");	   	fgets(buf, sizeof buf, pp1);	 		pclose(pp1);	   	if(strlen(buf)<2)//如果有进程	   		pm_infocountor++;//计数器自增///////////////////////////	   			   	if( (pp1 = popen("ps -ef | grep Notification_5.mid", "r")) == NULL )	   			printf("error");	   	while(fgets(buf, sizeof buf, pp1))	   		{	   		if(strstr(buf,"grep")==NULL&&strstr(buf,"Notification_5.mid"))	   			{	   			if(pm_infocountor)	   					pm_infocountor--;	   			break;	   			}		   		}	 		pclose(pp1);	   	}	   if(pm_infocountor)	   	{			sprintf(buf,"电话/短信%d个",pm_infocountor);//提示电话/短信			QString tempstr=ChineseAndEnglish(buf);			setMainWidgetTitle(tempstr);		}		else			setMainWidgetTitle(ChineseAndEnglish("键盘软锁 v2.0"));	{		infolabel2->setText(ChineseAndEnglish(""));	infolabel2->setPreferredWidth(220);//设置标签	infolabel2->setAutoResize(true );				QString qstemp;		Date tdate;	  FILE *pp;	  if( (pp = popen("export TZ=GMT-8 ;  date +\"Day: \"%Y/%m/%e%nDate:%A%nTime:%T", "r")) == NULL )//system调用	         {	        printf("popen() error!\n");	         }	   while(fgets(buf, sizeof buf, pp))//读文件;	   	{	   		qstemp+=buf;	   		qstemp+='\n';	   	}	   pclose(pp);	 if( (pp = popen("export TZ=GMT-8 ;   date +%Y ; date +%m ; date +%e", "r")) == NULL )//system调用	fgets(buf, sizeof buf, pp);	fgets(buf, sizeof buf, pp);	 tdate.year=atoi(buf);	fgets(buf, sizeof buf, pp);	 tdate.month=atoi(buf);	fgets(buf, sizeof buf, pp);	 tdate.day=atoi(buf);	pclose(pp);	nl_countor++;	if(nl_countor==60)//每60秒更新一次农历	{		GetDayOf(tdate,nltemp);	}	nl_countor%=60;	qstemp+=nltemp;	qstemp.replace( QRegExp("Day"), ChineseAndEnglish("日期" )); 	qstemp.replace( QRegExp("Date"), ChineseAndEnglish("星期" )); 	qstemp.replace( QRegExp("Time"), ChineseAndEnglish("时间" )); 	infolabel->setText(qstemp);	infolabel->setPreferredWidth(220);//设置标签	infolabel->setAutoResize(true );			}	update_c%=5;	}void MyZKbMain::GetDayOf(Date &tdate,QString &strLuner) //农历算法{ /*天干名称*/ const char *cTianGan[] = {"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"}; /*地支名称*/ const char *cDiZhi[] = {"子","丑","寅","卯","辰","巳","午", "未","申","酉","戌","亥"}; /*属相名称*/ const char *cShuXiang[] = {"鼠","牛","虎","兔","龙","蛇", "马","羊","猴","鸡","狗","猪"}; /*农历日期名*/ const char *cDayName[] = {"*","初一","初二","初三","初四","初五", "初六","初七","初八","初九","初十", "十一","十二","十三","十四","十五", "十六","十七","十八","十九","二十", "廿一","廿二","廿三","廿四","廿五", "廿六","廿七","廿八","廿九","三十"}; /*农历月份名*/ const char *cMonName[] = {"*","正","二","三","四","五","六", "七","八","九","十","十一","腊"}; /*公历每月前面的天数*/ const int wMonthAdd[12] = {0,31,59,90,120,151,181,212,243,273,304,334}; /*农历数据*/ const int wNongliData[100] = {2635,333387,1701,1748,267701,694,2391,133423,1175,396438 ,3402,3749,331177,1453,694,201326,2350,465197,3221,3402 ,400202,2901,1386,267611,605,2349,137515,2709,464533,1738 ,2901,330421,1242,2651,199255,1323,529706,3733,1706,398762 ,2741,1206,267438,2647,1318,204070,3477,461653,1386,2413 ,330077,1197,2637,268877,3365,531109,2900,2922,398042,2395 ,1179,267415,2635,661067,1701,1748,398772,2742,2391,330031 ,1175,1611,200010,3749,527717,1452,2742,332397,2350,3222 ,268949,3402,3493,133973,1386,464219,605,2349,334123,2709 ,2890,267946,2773,592565,1210,2651,395863,1323,2707,265877}; static int wCurYear,wCurMonth,wCurDay; static int nTheDate,nIsEnd,m,k,n,i,nBit; //char szNongli[30], szNongliDay[10],szShuXiang[10]; /*---取当前公历年、月、日-- -*/ wCurYear = tdate.year; wCurMonth = tdate.month; wCurDay = tdate.day;/*---计算到初始时间1921年2月8日的天数:1921-2-8(正月初一)---*/ nTheDate = (wCurYear - 1921) * 365 + (wCurYear - 1921) / 4 + wCurDay + wMonthAdd [wCurMonth - 1] - 38; if((!(wCurYear % 4)) && (wCurMonth > 2)) nTheDate = nTheDate + 1; /*--计算农历天干、地支、月、日---*/ nIsEnd = 0; m = 0; while(nIsEnd != 1) { 	if(wNongliData[m] < 4095) 		k = 11; 	else 		k = 12; 	n = k; 	while(n>=0) 	{ 		//获取wNongliData(m)的第n个二进制位的值 		nBit = wNongliData[m]; 		for(i=1;i<n+1;i++) 		nBit = nBit/2; 		nBit = nBit % 2; 		if (nTheDate <= (29 + nBit)) 		{ 			nIsEnd = 1; 			break; 		} 		nTheDate = nTheDate - 29 - nBit; 		n = n - 1; 	} 	if(nIsEnd) 		break; 	m = m + 1; } wCurYear = 1921 + m; wCurMonth = k - n + 1; wCurDay = nTheDate; if (k == 12) { 	if (wCurMonth == wNongliData[m] / 65536 + 1) 		wCurMonth = 1 - wCurMonth; 	else if (wCurMonth > wNongliData[m] / 65536 + 1) 		wCurMonth = wCurMonth - 1; } /*--生成农历天干、地支、属相 ==> wNongli--*/ strLuner = ChineseAndEnglish(cShuXiang[((wCurYear - 4) % 60) % 12])          + ChineseAndEnglish("\(")          +ChineseAndEnglish(cTianGan[((wCurYear - 4) % 60) % 10])          +ChineseAndEnglish(cDiZhi[((wCurYear - 4) % 60) % 12])          +ChineseAndEnglish(")年");/*--生成农历月、日 ==> wNongliDay--*/ if (wCurMonth < 1){ 	strLuner = strLuner + ChineseAndEnglish("闰")         	+ ChineseAndEnglish(cMonName[-1 * wCurMonth]);}else{	strLuner = strLuner + ChineseAndEnglish(cMonName[wCurMonth]);}strLuner = strLuner + ChineseAndEnglish("月")           + ChineseAndEnglish(cDayName[wCurDay]);} QTextCodec* gbk_codec = QTextCodec::codecForName("UTF-8");
QString ChineseAndEnglish(const char*ChineseString)
{
	return gbk_codec->toUnicode(ChineseString);
} int main( int argc, char **argv ){	ZApplication* a = new ZApplication( argc, argv );	MyZKbMain*zmain=new MyZKbMain(argv[1]);	a->setMainWidget( zmain );    	zmain->show();	a->exec();	delete zmain;	delete a;   	return argc;}#include"kmain.moc"

⌨️ 快捷键说明

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