我有一个服务(比如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。
答案 0 :(得分:2)
您需要使用EnumProcesses()
枚举正在运行的流程,在每个流程ID上调用OpenProcess()
和GetModuleFileNameEx()
,直到找到您感兴趣的文件名,然后您将拥有其完整路径。