如何获得系统运行的所有进程的名字?就象WIN2000的进程管理器一样
并如何关闭其中一个进程,应该用什么API?我没有MSDN,请帮忙

解决方案 »

  1.   

    http://www.codeguru.com/system/PList.html
    single interface to enumerate processesto terminate a process, use The TerminateProcess function terminates the specified process and all of its threads.
    BOOL TerminateProcess(
      HANDLE hProcess,
      UINT uExitCode
    );You can send WM_CLOSE message to that program first, if it does not exit, then call TerminateProcess.
      

  2.   

    // 以下程序把所有进程名称加入IDC_PROCESSLIST列表框
    // 需要psapi.lib#include "psapi.h"
    HANDLE hProcess[256];
    int ListNum;
    DWORD i;
    DWORD ListTbl[256];
    DWORD ListSize=256;EnumProcesses(ListTbl,256*sizeof(DWORD),&ListSize);
    ListNum=ListSize/sizeof(DWORD);
    for(i=0;i<ListNum;i++)
    {
        hProcess[ProcessNum]=OpenProcess( 
            ROCESS_QUERY_INFORMATION |PROCESS_VM_READ,FALSE,ListTbl[i]);
        if ( hProcess[ProcessNum] )
        {
            HMODULE hMod;
            DWORD cbNeeded;
            if ( EnumProcessModules( hProcess[ProcessNum], 
                                     &hMod, sizeof(hMod), &cbNeeded) )
            {
                 GetModuleBaseName( hProcess[ProcessNum], hMod,
                                                      Info, 256 );
                 SendDlgItemMessage(hWnd,IDC_PROCESSLIST,LB_ADDSTRING,
                                                  0,(LPARAM)Info);
            }
            CloseHandle(hProcess[ProcessNum]);
        }
    }
      

  3.   

    忘了说了,那个程序只能运行在NT系统(如Win2K、WinXP)。
      

  4.   

    http://vip.6to23.com/NowCan1/code/ps_src.zip
    这个通用于任何Windows平台。