我有一个正在编写的 C++ DLL,它需要检查特定进程是否正在运行。
将启动 dll 应用程序将在以下位置运行:
c:\Directory\application.exe
其中有一个子目录,其中包含另一个可执行文件:
c:\Directory\SubDirectory\application2.exe
如果检查 application2.exe 是否正在运行,DLL 在运行时需要做什么,最重要的是它是否在该文件夹中运行 - 将运行多个副本,因此我们需要确保正在运行正确的副本。
我有以下代码可以很好地检测到 application2.exe 正在运行,但它没有考虑文件路径:
HANDLE pss = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
PROCESSENTRY32 pe = { 0 };
pe.dwSize = sizeof(pe);
if (Process32First(pss, &pe))
{
do
{
if(wcscmp(pe.szExeFile, L"application2.exe") == 0)
{
CloseHandle(pss);
return (1);
}
}
while(Process32Next(pss, &pe));
}
CloseHandle(pss);
如何检查进程的路径是否与调用 DLL 的应用程序的路径匹配?