如何知道进程是否在C++;,WinAPI?

如何知道进程是否在C++;,WinAPI?,winapi,Winapi,如果我只知道exe文件名,如何在windows程序中知道进程是否正在运行? 所讨论的进程是TeamSpeak3 ts3client_win64.exe(64位)和ts3client_win32.exe(32位) 我使用的是C++您可以使用和的组合(或者,对于Vista或更高版本)。MSDN甚至有。Windows NT有几个用于枚举进程的API (泄气) WMI(远程工作) 使用函数创建当前流程表的快照,然后使用和函数迭代快照。通过查看结构的szExeName字段,可以获得每个可执行文件的名称

如果我只知道exe文件名,如何在windows程序中知道进程是否正在运行? 所讨论的进程是TeamSpeak3 ts3client_win64.exe(64位)和ts3client_win32.exe(32位)


我使用的是C++

您可以使用和的组合(或者,对于Vista或更高版本)。MSDN甚至有。Windows NT有几个用于枚举进程的API

  • (泄气)
  • WMI(远程工作)
  • 使用函数创建当前流程表的快照,然后使用和函数迭代快照。通过查看结构的
    szExeName
    字段,可以获得每个可执行文件的名称

    有关如何使用这些函数的示例,请参见

    这种方法的优点是,与任何基于的解决方案不同,它不受竞争条件的影响:对于
    enumprocess
    ,在完成进程枚举后但在打开进程(或读取进程可执行文件名)之前,进程可能会被破坏