c++/qt程序单例启动,寻找当前程序是否已经存在系统中

#include <windows.h>
#include <tlhelp32.h>

bool
FindProcess(QString strProcessName) { bool bFind = false; PROCESSENTRY32 pInfo; pInfo.dwSize = sizeof(pInfo); DWORD dCurProcesssID = GetCurrentProcessId(); // 获取当前进程ID HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); Process32First(hSnapShot, &pInfo); do { QString strTempProcessName = (QString::fromUtf16(reinterpret_cast<const unsigned short *>(pInfo.szExeFile))); // 判断当前得到的进程名称是否和指定进程名称相同同时进程ID和当前进程的进程ID不相同 if (strTempProcessName == strProcessName && dCurProcesssID != pInfo.th32ProcessID) { bFind = true; } } while (Process32Next(hSnapShot, &pInfo)); return bFind; }
posted @ 2019-12-17 17:55  长脚的思想  阅读(464)  评论(0编辑  收藏  举报