Список текущего процесса в golang, Windows version
Как я могу получить список текущих процессов в golang под Windows?
Мне нужно что-то вроде:
список текущего запущенного процесса в Golang
но можно использовать и под Windows.
3 ответов
Я только что реализовал необходимую вам функцию (EnumProcess как указано выше axw). Проверьтеhttps://github.com/AllenDang/w32. Возможно, ты захочешь подождать, пока мой запрос не будет выполнен. :) Пример использования:https://gist.github.com/3083408
вам нужно использовать функцию Windows API EnumProcesses
. The syscall пакет в Windows позволяет загружать произвольные библиотеки DLL и их функции (например, через LoadLibrary/GetProcAddress). Так что вы можете добраться до EnumProcesses
на psapi.dll
. Это дает вам список PID; затем вы можете использовать OpenProcess и EnumProcessModules для получения имени процесса.
возможно, кто-то уже сделал работу по реализации этого, но я ничего не знаю. Если вы ничего не можете найти, возьмите посмотрите на источник пакета syscall (скажем,src/pkg/syscall / zsyscall_windows_386.go) и сделать что-то похожее на то, что сделано для других функций Windows API.
согласно документам пакета syscall: этот пакет заблокирован. Код вне стандартного репозитория Go должен быть перенесен для использования соответствующего пакета в golang.org/x/sys хранилище.
вы можете использовать golang.org/x/sys/windows, он имеет Process32First и Process32Next, чтобы перечислить системные процессы.