特定のプロセスが実行されているかどうかを確認する必要がある、作成中の 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 を呼び出したアプリケーションのパスと一致することを確認するにはどうすればよいですか?