我有一个服务(让我说myservice)试图找出另一个应用程序的路径(让我说myapp.exe)。 myservice只知道应用程序的名称,而不是完整路径。我的代码如下:

HMODULE hModule = GetModuleHandle(TEXT("myapp.exe"));
if( hModule == NULL )
{
    // error 126
    return false;
}
int ret = GetModuleFileName(hModule, szBuffer, dwBufferSize);
if( !ret )
{
    .......
    return false;
}

GetModuleHandle始终返回126错误mod_not_found。怎么能 !实现此功能。

谢谢,
KM。

最佳答案

您需要使用 EnumProcesses() 枚举正在运行的进程,在每个进程ID上调用 OpenProcess() GetModuleFileNameEx() ,直到找到您感兴趣的文件名,然后您将获得其完整路径。

10-08 04:06