• [C#网络应用编程]1、对进程的操作


    在.net中,Process类提供了对进程进行管理的各种方法。

    一、获取进程集合的方法:

    Process[] myProcesses = Process.GetProcesses();  //获取本地计算机所有进程

    Process[] myProcesses = Process.GetProcesses(string ip);  //获取远程计算机所有进程

    Process[] myProcesses = Process.GetProcessesByName(string name);  //根据名称获取本地计算机所有进程

    Process[] myProcesses = Process.GetProcessesByName(string name, string ip);  //根据名称获取本地计算机所有进程

    1. 对单个进程的一些属性和方法 (假设Process aProcess=myProcesses[0]):

    1.1 aProcess.Modules 与该进程有关的一些信息 (假设ProcessModuleCollection modules = aProcess.Modules)

    每一个进程都包含这个属性,但并不是每个进程的该属性都能被获取到

    该集合的第一个成员等同于MainModule属性

    1.1.1 MainModule 该进程的主要模块 (假设ProcessModule aModule = aProcess.MainModule)

    1.1.1.1 aModule.FileName  该进程的完整路径

    1.1.1.2 aModule.ModuleName 该进程模块的名称

    1.1.1.3 aModule.FileVersionInfo 该模块的版本信息 (假设FileVersionInfo vInfo = aModule.FileVersionInfo)

    1.1.1.3.1 FileVersionInfo.FileVersion 版本

    1.1.1.3.2 FileVersionInfo.FileDescription 描述

    1.1.1.3.3 FileVersionInfo.Language 语言

    1.2 aProcess.StartTime  该进程的启动时间

    1.3 aProcess.Id 该进程的id

    1.4 aProcess.ProcessName 该进程的名称

    1.5 aProcess.WorkingSet64 该进程分配的物理内存 (单位字节)

    1.6 aProcess.HasExited 返回一个bool值提示是否已停止运行  (必须是对一个已经启动过的进程,如果是刚new出来还没有执行Start()方法的,会卡在那一步无法继续执行)

    1.7 aPocess.WaitForInputIdle() 等待新进程完成它的初始化并等待用户输入。

    二、启动与停止进程

    首先创建一个Process实例,并设置相应的StartInfo属性,然后调用该实例的Start()方法,当不希望该进程运行时,调用该实例的CloseMainWindow()或者Kill()方法停止该进程

    Process p = new Process();
    p.StartInfo.FileName = "NotePad"; //要执行的文件名
    p.StartInfo.Arguments = ""; //要传的参数
    p.StartInfo.WindowStyle = ProcessWindowStyle.Maximized; //设置图形界面打开方式(最大化);
    p.Start();
    p.WaitForInputIdle(); //等待进程启动完成,确保后面可以获取到相关信息

    Thread.Sleep(2000);
    //当需要关闭时: p.Kill(); // p.CloseMainWindow();

    关于两个停止进程的方法:

    如果是图形界面的,调用CloseMainWindow(),放方法与单击图形界面的关闭按钮效果相同,它可能会提示用户是否需要保存数据 (也可以调用Kill()直接退出)

    如果没有图形界面,调用Kill(),该方法不会有任何提示,直接停止进程,此期间任何没有保存的数据都会丢失  (强行终止进程,该方法是异步的,因此需要调用该实例的WaitForExit()或者用HasExited属性确认已经退出)

  • 相关阅读:
    servlet的提交
    servlet的doPost 和doGet和web文件结构
    helloServlet
    捕鱼达人
    The 2018 ACM-ICPC China JiangSu Provincial Programming Contest I. T-shirt
    ACM-ICPC 2017 Asia Urumqi A. Coins
    Nordic Collegiate Programming Contest 2015​ B. Bell Ringing
    变量
    hiho 1050 树的直径
    ACM-ICPC 2017 Asia Urumqi G. The Mountain
  • 原文地址:https://www.cnblogs.com/dengshaojun/p/4143390.html
Copyright © 2020-2023  润新知