当前位置: 首页 > news >正文

乐清市建设路小学网站用凡科做的手机网站版

乐清市建设路小学网站,用凡科做的手机网站版,win7如何建设免费网站,事件营销的具体方法有哪些Qt 进程守护程序 简单粗暴的监控#xff0c;方法可整合到其他代码。 一、windows环境下 1、进程查询函数 processCount函数用于查询系统所有运行的进程中该进程运行的数量#xff0c;比如启动了5个A进程#xff0c;该函数查询返回的结果就为5。 windows下使用了API接口查询…Qt 进程守护程序 简单粗暴的监控方法可整合到其他代码。 一、windows环境下 1、进程查询函数 processCount函数用于查询系统所有运行的进程中该进程运行的数量比如启动了5个A进程该函数查询返回的结果就为5。 windows下使用了API接口查询进程信息该函数纯C无Qt库相关代码注释对代码进行了详细解释。 int processCount(const char* processName) {int countProcess 0;//CreateToolhelp32Snapshot 获取系统中正在运行的进程信息线程信息等HANDLE toolHelp32Snapshot CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);if (((int)toolHelp32Snapshot) ! -1){PROCESSENTRY32 processEntry32;processEntry32.dwSize sizeof(processEntry32);if(Process32First(toolHelp32Snapshot, processEntry32)) //判断进程获取首进程是否存在{do{int iLen 2 * wcslen(processEntry32.szExeFile); //wcslen - 计算宽字符串的长度char* currentProcessName new char[iLen 1];wcstombs(currentProcessName, processEntry32.szExeFile, iLen 1); //将宽字符转换成多字符if (strcmp(processName, currentProcessName) 0) //对比进程名countProcess;delete []currentProcessName;}while (Process32Next(toolHelp32Snapshot, processEntry32)); //进程获取函数,获取下一个进程名}//关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等。CloseHandle(toolHelp32Snapshot);}return countProcess; }2、进程守护代码 进程守护其实就是使用一个进程去定时查询另外一个被守护的进程是否存在不存在则需要启动该进程。代码如下运行时首先需要获取被守护的进程APP使用读取配置文件的方式如果配置文件不存在首次启动该代码则需要选择被守护的进程然后将选择的APP路劲存入配置文件供下次启动读取使用。 #include QApplication #include QFileDialog #include QSettings #include windows.h #include QDebug #include QDateTimeint main(int argc, char *argv[]) {QSettings sets(sys.ini, QSettings::IniFormat);QString targetExePath sets.value(KEY_EXE_PATH).toString();if ( targetExePath){//首次需要选择 被守护的进程QString exepath QFileDialog::getOpenFileName(nullptr, 选择程序, D:/, Exe files (*.exe));if ( ! exepath)sets.setValue(KEY_EXE_PATH, exepath); //写入配置文件}while (1) //死循环不断查询判断{//targetExePath sets.value(KEY_EXE_PATH).toString();QString exeName targetExePath.split(/).last();QDateTime strtTime QDateTime::currentDateTime();int countProcess processCount(exeName.toStdString().c_str()); // 查询该进程运行数量qDebug()use times for Query process:strtTime.msecsTo(QDateTime::currentDateTime())(ms) countProcess:countProcess;if (countProcess 0)system(targetExePath.toStdString().c_str()); //关闭状态 重启进程,注意这里实际运行会阻塞在这里一直等到被守护的线程结束。Sleep(3000);} }二、linux环境下 1、进程查询函数 原理 使用 popen函数 pidof命令 查询对应进程的pid该方法的缺点就是不能像windows那样读取所有进程名从而获取该进程运行的数量。所以如果一个程序加载多个进程同程序进程名相同pid不同使用该方法只能获取最后一个启动的进程pid。 popen属于标准I/O函数库中函数使用该函数启动另外一个进程去执行一个shell命令行。 这里我们称调用popen的进程为父进程由popen启动的进程称为子进程。 popen函数还创建一个管道用于父子进程间通信。父进程要么从管道读信息要么向管道写信息至于是读还是写取决于父进程调用popen时传递的参数。 实现函数如下函数参数输入进程名返回进程的pid,如果返回0则表示进程不存在或未运行。 void Widget::watchdog() {//守护进程QTimer* updateTimer new QTimer(this);connect(updateTimer, SIGNAL(timeout()), this, SLOT(checkApp()));updateTimer-start(300); }void Widget::checkApp() {if (getProcessPidByName(AppName) 0) {system(cd /sdcard);system(./AppName );qDebug() ;qDebug() _ __ _____ _ ;qDebug() | |/ / / ____|| | ;qDebug() | / __ _ _ __ __ _ | | | |__ _ _ __ _ _ __ __ _ ;qDebug() | / _ || _ \\ / _ | | | | _ \\ | | | | / _ || _ \\ / _ |;qDebug() | . \\ | (_| || | | || (_| | | |____ | | | || |_| || (_| || | | || (_| |;qDebug() |_|\\_\\ \\__,_||_| |_| \\__, | \\_____||_| |_| \\__,_| \\__,_||_| |_| \\__, |;qDebug() __/ | __/ |;qDebug() |____/ |____/ ;qDebug() ;} }int Widget::getProcessPidByName(const char* proc_name) {FILE* fp;char buf[100];char cmd[200] { \0 };int pid -1;sprintf(cmd, pidof %s, proc_name);if ((fp popen(cmd, r)) ! NULL) {if (fgets(buf, 255, fp) ! NULL)pid atoi(buf);}pclose(fp);return pid; }
http://www.hkea.cn/news/14403053/

相关文章:

  • 做订阅号要建立网站吗时事热点新闻
  • 网站建设淘宝客ru域名注册
  • 广州网站建设圣矢怎么做私人网站
  • 做生蚝的网站wordpress 阅读更多
  • 中职网站建设与管理提升关键词排名有哪些方法
  • 宁波江北区建设局网站河南建设工程信息网站
  • soho外贸网站长沙网站开发微联讯点不错
  • 涂料厂做网站有用吗装修设计公司官网
  • 网络程序安徽网络优化方案
  • 关于二级网站建设如何弄一个自己的小程序
  • 泉州哪里建设网站html 网站
  • 申请免费网站域名wordpress 微信扫码
  • 网站母版页怎么做seo对网店推广的作用
  • 河北专业网站制作在线设计平台属于什么行业
  • 微网站官网专业建设成果
  • 哪里有免费建站平台网站建设上传宝贝xamp
  • 贵阳网站建设套餐知名网站建设怎么样
  • 做网站如何规避法律风险做网站用什么空间好
  • 招标网站哪个好用自己设计房子软件手机
  • 响应式网站制作价格电商公司运营策略
  • 一家只做特卖的网站suxing wordpress
  • 查公司法人信息怎么查网站优化推广培训
  • 后台做网站的题长业建设集团有限公司网站
  • 合肥网站建设公司哪家好百度竞价排名查询网站
  • 企业网站的页面布局cms wordpress 企业
  • 酷安wordpress都没了天津seo诊断技术
  • 企业网站的建立主要用于企业内部发布信息网站前端培训
  • 腾讯云10g数字盘做网站够么深圳建设局网站首页
  • wordpress 建站 电子书网页升级访问站
  • 在网站建设工作会议上的讲话公司网址正确格式