检查应用程序是否存在已在运行的实例
来源:互联网 发布:35互联域名转出 编辑:程序博客网 时间:2024/06/04 19:30
检查应用程序是否存在已经在运行的实例,如果有则强制终止之。
HANDLE GetPrevInstance(){HANDLE snapshot;PROCESSENTRY32 processInfo;processInfo.dwSize = sizeof(processInfo);snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);if (snapshot == NULL) return;bool flag = Process32First(snapshot, &processInfo);while(flag){if (!_tcsncmp(processInfo.szExeFile, CON_MAINEXE, _tcslen(CON_MAINEXE)) && processInfo.th32ProcessID != GetCurrentProcessId()){return OpenProcess(PROCESS_ALL_ACCESS, FALSE, processInfo.th32ProcessID);}flag = Process32Next(snapshot,&processInfo);}return NULL;CloseToolhelp32Snapshot(&snapshot);}BOOL SetPrivilege(HANDLEhToken, LPCTSTR lpszPrivilege, BOOL bEnablePrivilege){TOKEN_PRIVILEGES tp;LUID luid;int error = 0;if (!LookupPrivilegeValue(NULL, lpszPrivilege, &luid)){error = GetLastError();//::MessageBox(NULL, NULL, "\nLookupPrivilegeValue error:%d", GetLastError(), 0);return FALSE;}tp.PrivilegeCount = 1;tp.Privileges[0].Luid=luid;tp.Privileges[0].Attributes = bEnablePrivilege ? SE_PRIVILEGE_ENABLED : 0;AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), NULL, NULL);if(GetLastError() != ERROR_SUCCESS){error = GetLastError();return FALSE;}returnTRUE;}void CheckPrevInstance(){HANDLE hProcess = NULL;DWORD count = 0;int error = 0;while ((hProcess = GetPrevInstance())){sleep(200);count ++;if (count >= 10){if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &hProcessToken)){error = GetLastError();return;}if (!SetPrivilege(hProcessToken, SE_DEBUG_NAME, TRUE)){error = GetLastError();return;} TerminateProcess(hProcess, 1);CloseHandle(hProcess);break;}CloseHandle(hProcess);}}
- 检查应用程序是否存在已在运行的实例
- 检查用户名是否已存在
- 检查用户名是否已在mysql中存在
- 如何用创建命名对象来判断应用程序是否已有一个实例在运行?
- formValidator插件检查用户是否已存在
- 基于HTML,以GET方式,检查注册用户名是否在数据库中已存在
- 基于HTML,以POST方式,检查注册用户名是否在数据库中已存在
- 安装loadrunner11,卸载360浏览器后提示“无效的应用程序路径!请检查应用程序是否存在!
- loadrunner11,卸载360浏览器后提示“无效的应用程序路径!请检查应用程序是否存在!
- 检查进程是否在运行
- dwr:检查注册时用户是否已存在,再取后台的用户集合List并显示
- thinkphp检查上传文件时是否已存在
- php检查上传文件是否已存在或同名
- c#检查启动的程序是否已经在运行
- 在系统中检测指定的窗口是否已经打开,检查某进程是否存在
- 在系统中检测指定的窗口是否已经打开,检查某进程是否存在
- 监听应用程序是否在运行
- 检查intent的响应者是否存在
- Android之ScrollView嵌套ListView(牛)
- OpenCV2.4 例程解析一 图像匹配
- STL源码剖析---deque
- ARM指令和Thumb指令的区别
- UC数据显示Android安全严峻形势
- 检查应用程序是否存在已在运行的实例
- GPIO pins define
- 单点登录基本原理详述
- 最短过桥时间
- 推荐ExtJS4值得阅读的文章
- enigma学习总结-Basic Missions篇
- STL之vector的用法
- 深入掌握JMS(一)
- 泰晤士河——英国著名的“母亲”河