请指点一下是否有什么API能做这样的事!!

解决方案 »

  1.   

    HANDLE OpenProcess(
      DWORD dwDesiredAccess,  // access flag
      BOOL bInheritHandle,    // handle inheritance option
      DWORD dwProcessId       // process identifier
    );dwProcessId是你的进程id,返回进程的handle,然后调用下面的函数:DWORD GetModuleFileName(
      HMODULE hModule,    // handle to module
      LPTSTR lpFilename,  // path buffer
      DWORD nSize         // size of buffer
    );把刚才得到的handle值传给 hMoudle, 那么参数lpFilename就是应用程序的名字。具体情况去查一下msdn吧。
      

  2.   

    BOOL GetProcessModule(DWORD dwPID, DWORD dwModuleID, LPMODULEENTRY32 lpMe32, DWORD cbMe32)
    {
        BOOL          bRet        = FALSE; 
        BOOL          bFound      = FALSE; 
        HANDLE        hModuleSnap = NULL; 
        MODULEENTRY32 me32        = {0}; 
     
        // Take a snapshot of all modules in the specified process.     hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwPID); 
    //hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, dwPID); 
        if (hModuleSnap == INVALID_HANDLE_VALUE) 
            return (FALSE); 
     
        // Fill the size of the structure before using it.     me32.dwSize = sizeof(MODULEENTRY32); 
     
        // Walk the module list of the process, and find the module of 
        // interest. Then copy the information to the buffer pointed 
        // to by lpMe32 so that it can be returned to the caller.     if (Module32First(hModuleSnap, &me32)) 
        { 
            do 
            { 
                if (me32.th32ModuleID == dwModuleID) 
                { 
                    CopyMemory (lpMe32, &me32, cbMe32); 
                    bFound = TRUE; 
                } 
            } 
            while (!bFound && Module32Next(hModuleSnap, &me32)); 
     
            bRet = bFound;   // if this sets bRet to FALSE, dwModuleID 
                             // no longer exists in specified process 
        } 
        else 
            bRet = FALSE;           // could not walk module list 
     
        // Do not forget to clean up the snapshot object.     CloseHandle (hModuleSnap); 
     
        return (bRet);
    }
      

  3.   

    http://www.vckbase.com/code/listcode.asp?mclsid=13&sclsid=1305
      

  4.   

    NT上面没有CreateToolhelp32Snapshot吧,这样吧,怎样在NT4上得到系统的进程名和进程ID?
      

  5.   

    我就是从EnumProcesses得到进程的ID ,但是没有名字呀