C#练习Array.Sort函数列出所有的进程与模块

简介:     using System; using System.Collections.Generic; using System.Text; using System.

 

 

using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;
using System.Collections;

namespace ICompare测试
{
    class Program
    {
        static void Main(string[] args)
        {
            Process[] allprocess = Process.GetProcesses();//所有运行的进程
            SortByProcessName cmpproname=new SortByProcessName();
            SortByModuleName cmpmodulename=new SortByModuleName();
            Array.Sort(allprocess, cmpproname);
            foreach (Process p in allprocess)
            {
                Console.WriteLine("{0}", p.ProcessName);
                try
                {
                    
                    ProcessModuleCollection allmodules = p.Modules;//进程下的所有模块
                    ProcessModule[] modules = new ProcessModule[allmodules.Count];
                    int i = 0;
                    foreach (ProcessModule m in allmodules)
                    {
                        modules.SetValue(m, i++);
                    }
                    Array.Sort(modules, cmpmodulename);
                    foreach (ProcessModule m in modules)
                    {
                        try
                        {
                            Console.WriteLine("  {0}", m.ModuleName);
                        }
                        catch { continue; }
                    }
                }
                catch
                { }
               
            }
        }
    }
    public class SortByProcessName : IComparer//Array.Sort()要用到的参数
    {
        public int Compare(object x, object y)
        {
            Process a = (Process)x;
            Process b = (Process)y;
            return a.ProcessName.CompareTo(b.ProcessName);
        }
    }
    public class SortByModuleName : IComparer
    {

        public int Compare(object x, object y)
        {
            ProcessModule a = (ProcessModule)x;
            ProcessModule b = (ProcessModule)y;
            return a.ModuleName.CompareTo(b.ModuleName);
        }
    }
}

 

结果:

  MSIMG32.dll
  msvcrt.dll
  MSVFW32.dll
  MSWSOCK.dll
  ncrypt.dll
  NETAPI32.dll
  netutils.dll
  npmproxy.dll
  NSI.dll
  ntdll.dll
  ntmarta.dll
  ole32.dll
  OLEAUT32.dll
  POWRPROF.dll
  profapi.dll
  propsys.dll
  PSAPI.DLL
  RICHED20.DLL
  RPCRT4.dll
  RpcRtRemote.dll
  rsaenh.dll
  safemon.dll
  SAMCLI.DLL
  sechost.dll
  Secur32.dll
  SensApi.dll
  SETUPAPI.dll
  SHELL32.dll
  SHLWAPI.dll
  slc.dll
  srvcli.dll
  SspiCli.dll
  TeamViewer.exe
  TeamViewer_Resource_zhCN.dll
  TeamViewer_StaticRes.dll
  tv_w32.dll
  urlmon.dll
  USER32.dll
  USERENV.dll
  USP10.dll
  uxtheme.dll
  VERSION.dll
  wdmaud.drv
  webio.dll
  winhttp.dll
  WININET.dll
  WINMM.dll
  WINNSI.DLL
  winsta.dll
  WINTRUST.dll
  wkscli.dll
  WLDAP32.dll
  WS2_32.dll
  wshtcpip.dll
  WTSAPI32.dll
TeamViewer_Service
  ADVAPI32.dll
  apphelp.dll
  bcrypt.dll
  bcryptprimitives.dll
  browcli.dll
  CFGMGR32.dll
  CLBCatQ.DLL
  comctl32.dll
  CRYPT32.dll
  CRYPTBASE.dll
  CRYPTSP.dll
  cscapi.dll
  d3d8thk.dll
  d3d9.dll
  davclnt.dll
  DAVHLPR.dll
  DEVOBJ.dll
  dhcpcsvc.DLL
  DNSAPI.dll
  drprov.dll
  dwmapi.dll
  fastprox.dll
  fwpuclnt.dll
  GDI32.dll
  gdiplus.dll
  GPAPI.dll
  iertutil.dll
  imagehlp.dll
  IMM32.DLL
  IPHLPAPI.DLL
  kernel32.dll
  KERNELBASE.dll
  LPK.dll
  Magnification.dll
  MPR.dll
  MSASN1.dll
  MSCTF.dll
  msvcrt.dll
  MSWSOCK.dll
  napinsp.dll
  ncrypt.dll
  Netapi32.dll
  netprofm.dll
  netutils.dll
  NLAapi.dll
  Normaliz.dll
  npmproxy.dll
  NSI.dll
  ntdll.dll
  NTDSAPI.dll
  ntlanman.dll
  ntmarta.dll
  ole32.dll
  OLEAUT32.dll
  pnrpnsp.dll
  profapi.dll
  propsys.dll
  Psapi.dll
  rasadhlp.dll
  RASAPI32.dll
  rasman.dll
  RPCRT4.dll
  RpcRtRemote.dll
  rsaenh.dll
  rtutils.dll
  sechost.dll
  Secur32.dll
  SensApi.dll
  SETUPAPI.dll
  SHELL32.dll
  SHLWAPI.dll
  srvcli.dll
  SspiCli.dll
  SXS.DLL
  TeamViewer_Service.exe
  urlmon.dll
  USER32.dll
  USERENV.dll
  USP10.dll
  uxtheme.dll
  VERSION.dll
  wbemcomn.dll
  wbemprox.dll
  wbemsvc.dll
  WININET.dll
  WINNSI.DLL
  winrnr.dll
  winsta.dll
  WINTRUST.dll
  wkscli.dll
  WLDAP32.dll
  WS2_32.dll
  wshbth.dll
  wship6.dll
  wshtcpip.dll
  WTSAPI32.dll
TSVNCache
tv_w32
  ADVAPI32.dll
  CFGMGR32.dll
  COMCTL32.dll
  CRTDLL.dll
  CRYPTBASE.dll
  DEVOBJ.dll
  devrtl.DLL
  GDI32.dll
  IMM32.DLL
  kernel32.dll
  KERNELBASE.dll
  LPK.dll
  MSCTF.dll
  msvcrt.dll
  newdev.dll
  ntdll.dll
  ole32.dll
  OLEAUT32.dll
  RPCRT4.dll
  sechost.dll
  setupapi.dll
  SHELL32.dll
  SHLWAPI.dll
  SspiCli.dll
  tv_w32.dll
  tv_w32.exe
  USER32.dll
  USP10.dll
  UxTheme.dll
tv_x64
TXPlatform
  ADVAPI32.dll
  CLBCatQ.DLL
  COMCTL32.dll
  CRTDLL.dll
  CRYPT32.dll
  CRYPTBASE.dll
  CRYPTSP.dll
  GDI32.dll
  iertutil.dll
  IMM32.DLL
  kernel32.dll
  KERNELBASE.dll
  LPK.dll
  MSASN1.dll
  MSCTF.dll
  msvcrt.dll
  NSI.dll
  ntdll.dll
  ole32.dll
  OLEAUT32.dll
  PSAPI.DLL
  RPCRT4.dll
  RpcRtRemote.dll
  rsaenh.dll
  safemon.dll
  sechost.dll
  SHELL32.dll
  SHLWAPI.dll
  SspiCli.dll
  SXS.DLL
  tv_w32.dll
  TXPFProxy.dll
  TXPlatform.exe
  urlmon.dll
  USER32.dll
  USP10.dll
  uxtheme.dll
  VERSION.dll
  WININET.dll
  WINTRUST.dll
  WS2_32.dll
wininit
winlogon
ZhuDongFangYu
  360base.dll
  360conf.dll
  360leakfixplugin.dll
  360NetBase.dll
  360SoftMgrS.dll
  ADVAPI32.dll
  apphelp.dll
  CFGMGR32.dll
  CLBCatQ.DLL
  cloudcom2.dll
  COMCTL32.dll
  CRYPT32.dll
  CRYPTBASE.dll
  DEVOBJ.dll
  dhcpcsvc.DLL
  dhcpcsvc6.DLL
  DNSAPI.dll
  fltlib.dll
  GDI32.dll
  heavygate.dll
  iertutil.dll
  IMM32.DLL
  IPHLPAPI.DLL
  kernel32.dll
  KERNELBASE.dll
  LINKINFO.dll
  LPK.dll
  MSASN1.dll
  MSCTF.dll
  mstask.dll
  msvcrt.dll
  mswsock.dll
  NETAPI32.dll
  netutils.dll
  NSI.dll
  ntdll.dll
  ole32.dll
  OLEAUT32.dll
  profapi.dll
  propsys.dll
  PSAPI.DLL
  qutmload.dll
  RASAPI32.dll
  rasman.dll
  RPCRT4.dll
  RpcRtRemote.dll
  rtutils.dll
  SAMCLI.DLL
  SAMLIB.dll
  sechost.dll
  secur32.dll
  SETUPAPI.dll
  SHELL32.dll
  SHLWAPI.dll
  srvcli.dll
  SspiCli.dll
  taskschd.dll
  urlmon.dll
  USER32.dll
  USERENV.dll
  USP10.dll
  VERSION.dll
  WININET.dll
  WINMM.dll
  WINNSI.DLL
  WINTRUST.dll
  wkscli.dll
  WS2_32.dll
  WTSAPI32.dll
  zhudongfangyu.exe
请按任意键继续. . .

相关文章
|
1月前
|
设计模式
ES6中新增Array.from()函数的用法详解
ES6中新增Array.from()函数的用法详解
25 1
|
1月前
|
Linux
进程等待(wait和wait函数)【Linux】
进程等待(wait和wait函数)【Linux】
|
3月前
|
C# 开发者
C# 9.0中的模块初始化器:程序启动的新控制点
【1月更文挑战第14天】本文介绍了C# 9.0中引入的新特性——模块初始化器(Module initializers)。模块初始化器允许开发者在程序集加载时执行特定代码,为类型初始化提供了更细粒度的控制。文章详细阐述了模块初始化器的语法、用途以及与传统类型初始化器的区别,并通过示例代码展示了如何在实际项目中应用这一新特性。
|
2天前
|
算法 Linux Shell
【linux进程(二)】如何创建子进程?--fork函数深度剖析
【linux进程(二)】如何创建子进程?--fork函数深度剖析
|
1月前
|
监控 C++
C++ Qt开发:QProcess进程管理模块
Qt是一个跨平台的C++图形库,简化了窗体应用开发,支持通过拖放组件提升效率。本章节关注`QProcess`组件,它用于控制和管理进程,例如执行命令、运行可执行文件及与外部进程通信。`QProcess`提供多种方法如`start`、`waitForStarted`和`waitForFinished`等,实现启动、监控和交互。示例展示了如何使用`QProcess`获取系统进程和信息,通过`tasklist`和`systeminfo`命令,并将结果展示在`QTreeWidget`中。
28 0
C++ Qt开发:QProcess进程管理模块
|
1月前
|
Linux 数据安全/隐私保护
进程间通信之共享内存及其shm函数的使用【Linux】
进程间通信之共享内存及其shm函数的使用【Linux】
|
1月前
|
Java Linux Shell
进程的程序替换(exec函数)【Linux】
进程的程序替换(exec函数)【Linux】
|
2月前
|
Java Python
使用Python的concurrent.futures模块简化多线程与多进程编程
使用Python的concurrent.futures模块简化多线程与多进程编程
|
2月前
|
并行计算 程序员 API
Python多进程编程:利用multiprocessing模块实现并行计算
Python多进程编程:利用multiprocessing模块实现并行计算
|
3月前
|
Linux Shell Windows
『 Linux 』使用fork函数创建进程与进程状态的查看(上)
『 Linux 』使用fork函数创建进程与进程状态的查看(上)

相关实验场景

更多