zoukankan      html  css  js  c++  java
  • Windows 获取进程ID

    DWORD GetProcessID(const char *ProcessName)
    {
        PROCESSENTRY32 pe32;
    
        pe32.dwSize = sizeof(PROCESSENTRY32);
    
        //获取进程快照
        HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
        if (hProcessSnap == INVALID_HANDLE_VALUE)
        {
            printf("CreateToolhelp32Snapshot 调用失败.
    ");
            return -1;
        }
    
        //遍历进程快照,轮流显示每个进程的信息
        BOOL bMore = ::Process32First(hProcessSnap, &pe32);
        while (bMore)
        {
            printf("进程名称:%ls
    ", pe32.szExeFile); //这里得到的应该是宽字符,用%ls,不然无法正常打印
            printf("进程ID:%u
    
    ", pe32.th32ProcessID);
            if (lstrcmp(pe32.szExeFile, ProcessName) == 0)
            {
                break;
            }
    
            bMore = ::Process32Next(hProcessSnap, &pe32);
        }
    
        //不要忘记清除掉snapshot对象
        ::CloseHandle(hProcessSnap);
    
        return pe32.th32ProcessID;
    }
    
    int main()
    {
        DWORD ID;
        const char *name = "sscom32.exe";
    
        ID = GetProcessID(name);
    
        printf("GetProcessId %s %u
    ", name, ID);
    
        while (1);
    
        return 0;
    }

    需要配置
    1
    或者

    DWORD GetProcessID(LPCWSTR ProcessName)
    {
        PROCESSENTRY32 pe32;
    
        pe32.dwSize = sizeof(PROCESSENTRY32);
    
        //获取进程快照
        HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
        if (hProcessSnap == INVALID_HANDLE_VALUE)
        {
            printf("CreateToolhelp32Snapshot 调用失败.
    ");
            return -1;
        }
    
        //遍历进程快照,轮流显示每个进程的信息
        BOOL bMore = ::Process32First(hProcessSnap, &pe32);
        while (bMore)
        {
            //printf("进程名称:%ls
    ", pe32.szExeFile); //这里得到的应该是宽字符,用%ls,不然无法正常打印
            //printf("进程ID:%u
    
    ", pe32.th32ProcessID);
            if (lstrcmp(pe32.szExeFile, ProcessName) == 0)
            {
                break;
            }
    
            bMore = ::Process32Next(hProcessSnap, &pe32);
        }
    
        //不要忘记清除掉snapshot对象
        ::CloseHandle(hProcessSnap);
    
        return pe32.th32ProcessID;
    }
    
    int main()
    {
        DWORD ID;
        LPCWSTR name = _T("sscom32.exe");
    
        ID = GetProcessID(name);
    
        printf("GetProcessId %ls %u
    ", name, ID);
    
        while (1);
    
        return 0;
    }
  • 相关阅读:
    FineUI 单击菜单页面内容完全刷新,关闭Tab
    FineUI秘密花园(九) — 表单验证
    FineUI 选中多行获取行ID
    NPOI控制Excel格式
    ”那个人样子好怪。” “我也看到了,他好像一条狗。”
    投资条件
    setContentView+LayoutInflater=完美切换页面(两者一定要同时使用,setContentView提高切换页面速度必看)setContentView的秘密----续上
    设置PlaceHolder的颜色
    android 数据库
    行动,行动,再行动
  • 原文地址:https://www.cnblogs.com/zhangxuechao/p/11709366.html
Copyright © 2011-2022 走看看