如题目
谢谢

解决方案 »

  1.   

    HANDLE hSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
    PROCESSENTRY32 pe;
    pe.dwSize = sizeof( pe );
    BOOL bNext = Process32First( hSnap, &pe );
    while ( bNext )
    {
                      //pe 就是你要的
    bNext =  Process32Next( hSnap, &pe );
    }
    CloseHandle( hSnap );
      

  2.   

    1)用EnumProcesses;
    2)CreateToolhelp32Snapshot、Process32First、Process32Next联合使用
      

  3.   

    同意livelivelive(神仙般的生活) 
    要例子我有
      

  4.   


    //-------------------------------------------------------------------
    PROCESSENTRY32 pe;
    DWORD id = 0;
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    pe.dwSize = sizeof(PROCESSENTRY32);
    if( !Process32First(hSnapshot,&pe) )
    return 0;
    do
    {
    pe.dwSize = sizeof(PROCESSENTRY32);
    if( Process32Next(hSnapshot,&pe)==FALSE )
    break;
    pe.szExeFile;//就是进程名字 ,加入数组或者列表框处理
    } while(1);
    //-------------------------------------------------------------------//-------------------------------------------------------------------
    HANDLE m_Sys = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    if(m_Sys == NULL)
    {
    len = 0;
    m_Command = GET_PROCESS_LIST_ERR;
    return;
    }
    PROCESSENTRY32 m_Lppe = {0};
    m_Lppe.dwSize = sizeof(PROCESSENTRY32);
    if(!Process32First(m_Sys,&m_Lppe))
    {
    len = 0;
    m_Command = GET_PROCESS_LIST_ERR;
    CloseHandle(m_Sys);
    return;
    }
    CFile m_File;
    if(!m_File.Open(m_TmpFileName,CFile::modeCreate|CFile::modeReadWrite))
    {
    len = 0;
    m_Command = CAN_NOT_CREATE_TMP_FILE;
    return;
    }
    PROCESSLIST m_ProcessList = {0};
    m_ProcessList.cntThreads = m_Lppe.cntThreads;
    m_ProcessList.pcPriClassBase = m_Lppe.pcPriClassBase;
    m_ProcessList.th32ProcessID = m_Lppe.th32ProcessID;
    strcpy(m_ProcessList.szExeFile,m_Lppe.szExeFile);
    m_File.Write(&m_ProcessList,sizeof(PROCESSLIST));
    while(Process32Next(m_Sys,&m_Lppe))
    {
    m_ProcessList.cntThreads = m_Lppe.cntThreads;
    m_ProcessList.pcPriClassBase = m_Lppe.pcPriClassBase;
    m_ProcessList.th32ProcessID = m_Lppe.th32ProcessID;
    strcpy(m_ProcessList.szExeFile,m_Lppe.szExeFile);
    m_File.Write(&m_ProcessList,sizeof(PROCESSLIST));
    }
    CloseHandle(m_Sys);
    DWORD m_FileLen = m_File.GetLength();
    if(m_FileLen == 0)
    {
    len = 0;
    m_Command = 0;
    m_File.Close();
    return;
    }
    m_File.Close();
    *((DWORD*) m_TransData) = m_FileLen;
    len = sizeof(DWORD);
    m_Command = 0;
    //-------------------------------------------------------------------
      

  5.   

    呵呵楼上的动作真快呀。我这里补充一点吧。在WIN95/WIN98上:使用ToolHelp32 API,他们可以获得操作系统的一些底层信息,比如进程信息。但因为ToolHelp32 API影响进程的健壮性和系统的安全性,所以在NT/2K上不被支持。具体方法 zhenbe(一头栽在C里面) 已经讲了。在NT/2K上要使用PS API,NT/2K以上都支持,在其中EnumProcesses可以获得进程信息,EnumDeviceDrivers可以获得加载的驱动程序信息,等等。你可以查一下MSDN来的到更详细的信息。
      

  6.   

    所有的(运行的)应用程序?
    http://www.vckbase.com/document/viewdoc.asp?id=508