初始化程式前关闭同名进程
来源:互联网 发布:mac的jdk路径 编辑:程序博客网 时间:2024/06/06 07:27
bool FindProcess(const char *pchProcessName){HANDLE Snapshot;Snapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);PROCESSENTRY32 processListStr;processListStr.dwSize=sizeof(PROCESSENTRY32);bool bFindProcess = false;BOOL bProcessExist;bProcessExist=Process32First(Snapshot,&processListStr);char psName[255];while(bProcessExist){memset(psName, 0, sizeof(psName));for (int i=0;i<wcslen(processListStr.szExeFile) + 1;i++){psName[i] = processListStr.szExeFile[i];}//OutputDebugString(psName);//OutputDebugString("\n");if(CompareStrNocase(psName,pchProcessName)){bFindProcess = true;break;}else{bProcessExist=Process32Next(Snapshot,&processListStr);}}CloseHandle(Snapshot);return bFindProcess;}bool KillProcess(const char *pchProcessName){HANDLE Snapshot;Snapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);PROCESSENTRY32 processListStr;processListStr.dwSize=sizeof(PROCESSENTRY32);BOOL bProcessExist;bProcessExist=Process32First(Snapshot,&processListStr);char psName[260];//if (!FindProcess(pchProcessName))//return true;while(bProcessExist){memset(psName, 0, sizeof(psName));for (int i=0;i<wcslen(processListStr.szExeFile) + 1;i++){psName[i] = processListStr.szExeFile[i];}if(CompareStrNocase(psName,pchProcessName)){HANDLE pFindHanle = OpenProcess(PROCESS_TERMINATE, false, processListStr.th32ProcessID);if (pFindHanle != NULL)TerminateProcess(pFindHanle, 0);CloseHandle(pFindHanle);break;}else{bProcessExist=Process32Next(Snapshot,&processListStr);}}CloseHandle(Snapshot);return !FindProcess(pchProcessName);}bool CompareStrNocase(const char *A, const char *B){char copy_A[255]={0};char copy_B[255]={0};strcpy(copy_A,A);strcpy(copy_B,B);int len_A=strlen(copy_A);int len_B=strlen(copy_B);if(len_A!=len_B)return false;else{for(int i=0;i<len_A;i++){if(isalpha(copy_A[i]))copy_A[i]=tolower(copy_A[i]);if(isalpha(copy_B[i]))copy_B[i]=tolower(copy_B[i]);}if(0==strcmp(copy_A,copy_B))return true;elsereturn false;}}bool AppIsExist(const char *pchProcessName){HANDLEm_hMutex;m_hMutex = OpenMutex(MUTEX_ALL_ACCESS, false,(LPCWSTR)pchProcessName);if (m_hMutex == NULL)m_hMutex = CreateMutex(NULL, true,(LPCWSTR)pchProcessName);else{return true;}return false;}
0 0
- 初始化程式前关闭同名进程
- 如何一次关闭同名进程
- 窗口关闭前杀死ActiveX的进程
- 同名进程互斥
- 杀死同名进程脚本
- mfc多线程创建,对话框关闭前退出进程
- 关闭进程
- 关闭进程
- 进程初始化
- Linux下用PYTHON查找同名进程
- windows给同名多进程发消息
- Windows任务管理器同名进程批量删除
- Linux下Kill多个同名进程
- linux杀死同名全部进程方法
- 监测同名进程,防止重复调用
- 显示进程、关闭进程
- 显示进程、关闭进程
- 查寻进程、关闭进程
- 增加属性功能
- Android 之 Handler 使用
- 【socket编程】如何理解同步异步与阻塞非阻塞的区别(转)
- 登陆和分享
- 从零开始学YII2框架(一)通过Composer安装Yii2框架
- 初始化程式前关闭同名进程
- 跨域问题
- XunSearch(讯搜)的使用教程步骤
- github学习(3)--工作区和暂存区
- spring 的ioc与di
- 开源DBCP、C3P0、Proxool 、 BoneCP连接池的比较
- @Validator验证
- 峻山电站1800调速器照片
- 第8课:彻底实战详解使用IDE开发Spark程序