首页 IP地址查询 | Alexa排名查询 | 手机归属地查询
设为首页 收藏本站
  • 网络编程网络编程
  • 软件编程软件编程
  • 数据库技术数据库技术
  • 编程学院
  • 业界资讯 业界资讯
  • 源码中心源码中心
  • 会员中心会员中心
  • 页面导航: 首页VC++语言系统 → 如何关闭系统的一个进程

    如何关闭系统的一个进程

    发布:姜毅 发布日期:2008-11-05 字体:[增加 减小] 类型:原创

    如果关闭一个系统的一个进程,有时候我们看到一个软件很烦,老是运行.那么我们怎么通过代码,将它关闭呢.

    可以分开两个步骤:

    1.打开系统进程管理器,查找相应的进程

    重点操作进程管理器的函数,我就例出这些函数的原型给大家

    HANDLE WINAPI CreateToolhelp32Snapshot(
      DWORD dwFlags,
      DWORD th32ProcessID
    );//打开进程管理器

    BOOL WINAPI Process32First(
      HANDLE hSnapshot,
      LPPROCESSENTRY32 lppe
    );读取第一个进程信息


    BOOL WINAPI Process32Next(
      HANDLE hSnapshot,
      LPPROCESSENTRY32 lppe
    );读取下一个进程信息

    DWORD FindAppProcessID(LPCTSTR lpszName)
    {

    //打开系统的进程管理器
     HANDLE handle=::CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
     PROCESSENTRY32 Info;
     Info.dwSize = sizeof(PROCESSENTRY32);

    //通过循环来读取列表, PROCESSENTRY32是进程的信息,通过以下两个函数,我们可以获取过来,与给定的"字符串(进程名)"比较,找到了,就返回进程ID
     if(::Process32First(handle,&Info))
     {
      do{
       CString ss=Info.szExeFile;
       if(!ss.CompareNoCase(lpszName))//这里是进程名称
       {
        ::CloseHandle(handle);
        return Info.th32ProcessID;
       }
      }
      while(::Process32Next(handle,&Info));
      ::CloseHandle(handle);
     }
     return -1;
    }

    2.通过获取的进程ID进行关闭

    //以下两个API函数,是常用到的,我就不详说了,获取进程句柄,关闭进程

     HANDLE ProcessHandle=OpenProcess(PROCESS_ALL_ACCESS,FALSE,id);
     if(ProcessHandle)TerminateProcess(ProcessHandle,0);


    下载附件
    Tags: 进程 Process

    文章评论

    共有 0位网友发表了评论 我来说两句

    昵称:*
    邮箱:
    评论:*1000字以内
    验证码: 若看不清,请点击换张图片* 为了安全请填入验证码,若不清楚,就点击图片换一组文字
    同 类 文 章
    最 近 更 新
    热 点 排 行