我想通过Windows环境中的进程名称获取进程ID?

我发现golang仅具有api os.FindProcess(id),但没有名称。


我也不得不为此而苦苦挣扎,并且发现解决方案的方法不是很简单,因为……WinApi :)

最后,您必须使用CreateToolhelp32Snapshot创建当前Windows进程列表的快照。 然后,使用Process32First在快照中获得第一个进程。 之后,继续使用Process32Next遍历列表,直到出现ERROR_NO_MORE_FILES错误。 只有这样,您才能拥有整个过程列表。

有关工作示例,请参见how2readwindowsprocesss。

要点如下:



您可以列出所有进程,并通过使用更新的sys调用程序包https://godoc.org/golang.org/x/sys将其与您要查找的名称匹配,
它具有大多数Windows API。

另请参阅msdn文档:
https://msdn.microsoft.com/zh-cn/library/windows/desktop/ms684834(v=vs.85).aspx