请各位大侠指教!

解决方案 »

  1.   

    用PSAPI
    EmptyWorkingSet 
    EnumDeviceDrivers 
    EnumPageFiles 
    EnumProcesses 
    EnumProcessModules 
    GetDeviceDriverBaseName 
    GetDeviceDriverFileName 
    GetMappedFileName 
    GetModuleBaseName 
    GetModuleFileNameEx 
    GetModuleInformation 
    GetPerformanceInfo 
    GetProcessImageFileName 
    GetProcessMemoryInfo 
    GetWsChanges 
    InitializeProcessForWsWatch 
    QueryWorkingSet 
    QueryWorkingSetEx 等
      

  2.   

    关键是想得出某一进程的CPU使用率,从上面这些函数里好像得不到吧
      

  3.   

    #include <Pdh.h>
    // 在实现文件中 
    #pragma comment ( lib , "Pdh.lib" )
    HQUERY  hQuery = NULL ;
    PDH_STATUS  pdhStatus ;
    HCOUNTER   * pCounterHandle = NULL ;
    // 打开计数器
    pdhStatus = PdhOpenQuery ( 0 , 0 , & hQuery ) ;
    pCounterHandle = ( HCOUNTER * ) GlobalAlloc ( GPTR , sizeof ( HCOUNTER ) ) ;
    // 创建计数器(假设要获取QQ程序的CPU使用率) 
    PDH_FMT_COUNTERVALUE fmtValue ;
    DWORD   dwctrType ;
    pdhStatus = PdhAddCounter ( hQuery , _TEXT ( "Process(_TEXT ( "QQ" ))\\%Processor Time" ) , 0 , pCounterHandle ) ;
    pdhStatus = PdhCollectQueryData ( hQuery ) ;
    // 得到当前计数器值
    pdhStatus = PdhGetFormattedCounterValue ( * pCounterHandle , PDH_FMT_DOUBLE , & dwctrType , & fmtValue ) ;
    // fmtValue.doubleValue就是当前此时此刻该程序的CPU使用率(循环调用就可得到实时数据) 
    // 关闭计数器
    pdhStatus = PdhCloseQuery ( hQuery ) ;