golang1.8使用cgo获取进程是否假死

golang1.8使用cgo获取进程是否假死,第1张

概述package mainimport ( "flag")/*#include <stdio.h>#include <windows.h>#include <Winuser.h>typedef struct EnumFunArg{ HWND hWND; DWORD dwProcessId;}EnumFunArg,*LPEnumFunArg
package mainimport (    "flag")/*#include <stdio.h>#include <windows.h>#include <Winuser.h>typedef struct EnumFunArg{    HWND      hWND;    DWORD    DWProcessID;}EnumFunArg,*LPEnumFunArg;BOol CALLBACK lpEnumFunc(HWND hwnd,LParaM lParam){    EnumFunArg  *pArg = (LPEnumFunArg)lParam;    DWORD  processID;    GetwindowThreadProcessID(hwnd,&processID);    if( processID == pArg->DWProcessID)    {        pArg->hWND = hwnd;        return FALSE;    }    return TRUE;}int ReturnWnd(DWORD processID){   BOol re = FALSE;   EnumFunArg wi;   wi.DWProcessID = processID;   wi.hWND   =  NulL;   Enumwindows(lpEnumFunc,(LParaM)&wi);   if(wi.hWND)   {        if (IsHungAppWindow(wi.hWND))        {            return 1;        }   }   else   {        return -1;   }    return 0;}*/import "C"func main() {    pID := flag.Int("p",0,"-p 1001")    flag.Parse()    h := C.ReturnWnd(C.DWORD(*pID))    switch h {    case 0:        println("程序有响应")    case 1:        println("程序无响应")    case -1:        println("无法获取窗口")    }}
总结

以上是内存溢出为你收集整理的golang1.8使用cgo获取进程是否假死全部内容,希望文章能够帮你解决golang1.8使用cgo获取进程是否假死所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1277975.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存