老板任务;要做一个监视本机正在运行的应用程序。用windows api可以得到系统正在运行的进程,但是有些进程是系统的,有些是用户自己启动的?请问有哪些方法可以区分出来?要求在所有windows系统下都能运行。谢谢!

解决方案 »

  1.   

    根据进程的Token得到创建进程的用户名,正如任务管理器中看到的用户名一样。据此判断?
      

  2.   

    EnumProcess();  //得到进程列表(进程ID)
    OpenProcess();  //根据进程ID得到进程句柄
    OpenProcessToken();  //根据进程句柄得到相关token
    GetTokenInfomation();  //取得token对应的sid
    LookupAccountSid();   //取得sid对应的用户名
      

  3.   

    http://www.firstarcicl.com.cn/download.asp
    里面的“Visual C++ 6.0应用编程150例”例子71就是你要的东西。