在WIN9X的时候用PROCESS32FIRST和NEXT的时候可以把进程的EXE文件和它的绝对路径显示出来但到WIN2000的时候就只能显示EXE文件而不显示它的路径,请问究竟是什么原因呢?是否权限这个东东在作怪呢,如果是的话是否用AdjustTokenPrivilegs这个API函数把权限毁灭掉呢?如果不是应该怎样才可以显示出它的路径呢?(总不会叫我用FINDFILE系列函数吧)

解决方案 »

  1.   

    补充一点:我不会用AdjustTokenPrivilegs这个函数且不知道里面所用到的结构的意义
      

  2.   

    see msdn, key : EnumProcesses
      

  3.   

    void CProcessManagerDlg::RefreshList()
    {
    DWORD aProcesses[ 1024 ];
        DWORD cProcesses = GetProcessIDs( aProcesses, sizeof( aProcesses ) );

    DWORD idxList = 0;


    m_ctrlProcess.DeleteCertainItem(aProcesses,cProcesses);


    for( DWORD idx = 0; idx < cProcesses; idx++ )
    {
    CString sName = GetProcessBaseModuleName( aProcesses[ idx ] );

    if( sName.IsEmpty() )
    {
    continue;
    }

    CString sPID;
    sPID.Format( "%d", aProcesses[ idx ] );
    if(m_ctrlProcess.FindPIDIndex(aProcesses[ idx ]) >= 0) continue;

    m_ctrlProcess.InsertItem( idxList, sName );
    m_ctrlProcess.SetItemText( idxList, 1, sPID );
    m_ctrlProcess.SetItemText( idxList, 2, GetProcessPath( aProcesses[ idx ] ) );
    m_ctrlProcess.SetItemData( idxList, aProcesses[ idx ] );

    idxList++;
    }
    }这是一个显示所有系统进程名称、进程标识、进程路径的函数
      

  4.   

    请问laiyiling(最熟悉的陌生人)以上的程序是调用了什么API函数呢?
      

  5.   

    GetProcessIDs
    GetProcessBaseModuleName
    GetProcessPath