zoukankan      html  css  js  c++  java
  • golang--获取进程ID(windows)

    package main
    
    import (
    	"fmt"
    	"strconv"
    	"syscall"
    	"unsafe"
    )
    
    type ulong int32
    type ulong_ptr uintptr
    
    type PROCESSENTRY32 struct {
    	dwSize              ulong
    	cntUsage            ulong
    	th32ProcessID       ulong
    	th32DefaultHeapID   ulong_ptr
    	th32ModuleID        ulong
    	cntThreads          ulong
    	th32ParentProcessID ulong
    	pcPriClassBase      ulong
    	dwFlags             ulong
    	szExeFile           [260]byte
    }
    
    func main() {
    	kernel32 := syscall.NewLazyDLL("kernel32.dll")
    	CreateToolhelp32Snapshot := kernel32.NewProc("CreateToolhelp32Snapshot")
    	pHandle, _, _ := CreateToolhelp32Snapshot.Call(uintptr(0x2), uintptr(0x0))
    	if int(pHandle) == -1 {
    		return
    	}
    	Process32Next := kernel32.NewProc("Process32Next")
    	for {
    		var proc PROCESSENTRY32
    		proc.dwSize = ulong(unsafe.Sizeof(proc))
    		if rt, _, _ := Process32Next.Call(uintptr(pHandle), uintptr(unsafe.Pointer(&proc))); int(rt) == 1 {
    			fmt.Println("ProcessName : " + string(proc.szExeFile[0:]))
    			fmt.Println("th32ModuleID : " + strconv.Itoa(int(proc.th32ModuleID)))
    			fmt.Println("ProcessID : " + strconv.Itoa(int(proc.th32ProcessID)))
    		} else {
    			break
    		}
    	}
    	CloseHandle := kernel32.NewProc("CloseHandle")
    	_, _, _ = CloseHandle.Call(pHandle)
    }
    

      

  • 相关阅读:
    test20180922 倾斜的线
    test20180921 量子纠缠
    test20180921 手机信号
    test20180919 选择客栈
    BZOJ3083 遥远的国度
    test20180907 day1
    [ZJOI2010]基站选址
    HDU3584 Cube
    POJ2155 Matrix
    test20180902 day1
  • 原文地址:https://www.cnblogs.com/saryli/p/11119327.html
Copyright © 2011-2022 走看看