Process Klass

Definition

Ger åtkomst till lokala processer och fjärrprocesser och gör att du kan starta och stoppa lokala systemprocesser.

public ref class Process : System::ComponentModel::Component
public class Process : System.ComponentModel.Component
type Process = class
    inherit Component
Public Class Process
Inherits Component
Arv

Exempel

I följande exempel används en instans av Process klassen för att starta en process.

using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        public static void Main()
        {
            try
            {
                using (Process myProcess = new Process())
                {
                    myProcess.StartInfo.UseShellExecute = false;
                    // You can start any process, HelloWorld is a do-nothing example.
                    myProcess.StartInfo.FileName = "C:\\HelloWorld.exe";
                    myProcess.StartInfo.CreateNoWindow = true;
                    myProcess.Start();
                    // This code assumes the process you are starting will terminate itself.
                    // Given that it is started without a window so you cannot terminate it
                    // on the desktop, it must terminate itself or you can do it programmatically
                    // from this application using the Kill method.
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
open System.Diagnostics

try
    use myProcess = new Process()
    myProcess.StartInfo.UseShellExecute <- false
    // You can start any process, HelloWorld is a do-nothing example.
    myProcess.StartInfo.FileName <- @"C:\HelloWorld.exe"
    myProcess.StartInfo.CreateNoWindow <- true
    myProcess.Start() |> ignore
// This code assumes the process you are starting will terminate itself.
// Given that it is started without a window so you cannot terminate it
// on the desktop, it must terminate itself or you can do it programmatically
// from this application using the Kill method.
with e ->
    printfn $"{e.Message}"
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        Public Shared Sub Main()
            Try
                Using myProcess As New Process()

                    myProcess.StartInfo.UseShellExecute = False
                    ' You can start any process, HelloWorld is a do-nothing example.
                    myProcess.StartInfo.FileName = "C:\\HelloWorld.exe"
                    myProcess.StartInfo.CreateNoWindow = True
                    myProcess.Start()
                    ' This code assumes the process you are starting will terminate itself. 
                    ' Given that it is started without a window so you cannot terminate it 
                    ' on the desktop, it must terminate itself or you can do it programmatically
                    ' from this application using the Kill method.
                End Using
            Catch e As Exception
                Console.WriteLine((e.Message))
            End Try
        End Sub
    End Class
End Namespace

I följande exempel används Process själva klassen och en statisk Start metod för att starta en process.

using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        // Opens the Internet Explorer application.
        void OpenApplication(string myFavoritesPath)
        {
            // Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe");

            // Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath);
        }

        // Opens urls and .html documents using Internet Explorer.
        void OpenWithArguments()
        {
            // url's are not considered documents. They can only be opened
            // by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com");

            // Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm");
            Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp");
        }

        // Uses the ProcessStartInfo class to start new processes,
        // both in a minimized mode.
        void OpenWithStartInfo()
        {
            ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
            startInfo.WindowStyle = ProcessWindowStyle.Minimized;

            Process.Start(startInfo);

            startInfo.Arguments = "www.northwindtraders.com";

            Process.Start(startInfo);
        }

        static void Main()
        {
            // Get the path that stores favorite links.
            string myFavoritesPath =
                Environment.GetFolderPath(Environment.SpecialFolder.Favorites);

            MyProcess myProcess = new MyProcess();

            myProcess.OpenApplication(myFavoritesPath);
            myProcess.OpenWithArguments();
            myProcess.OpenWithStartInfo();
        }
    }
}
module processstartstatic

open System
open System.Diagnostics

// Opens the Internet Explorer application.
let openApplication (myFavoritesPath: string) =
    // Start Internet Explorer. Defaults to the home page.
    Process.Start "IExplore.exe" |> ignore

    // Display the contents of the favorites folder in the browser.
    Process.Start myFavoritesPath |> ignore

// Opens urls and .html documents using Internet Explorer.
let openWithArguments () =
    // url's are not considered documents. They can only be opened
    // by passing them as arguments.
    Process.Start("IExplore.exe", "www.northwindtraders.com") |> ignore

    // Start a Web page using a browser associated with .html and .asp files.
    Process.Start("IExplore.exe", @"C:\myPath\myFile.htm") |> ignore
    Process.Start("IExplore.exe", @"C:\myPath\myFile.asp") |> ignore

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
let openWithStartInfo () =
    let startInfo = ProcessStartInfo "IExplore.exe"
    startInfo.WindowStyle <- ProcessWindowStyle.Minimized

    Process.Start startInfo |> ignore

    startInfo.Arguments <- "www.northwindtraders.com"

    Process.Start startInfo |> ignore

// Get the path that stores favorite links.
let myFavoritesPath = Environment.GetFolderPath Environment.SpecialFolder.Favorites

openApplication myFavoritesPath
openWithArguments ()
openWithStartInfo ()
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        ' Opens the Internet Explorer application.
        Public Sub OpenApplication(myFavoritesPath As String)
            ' Start Internet Explorer. Defaults to the home page.
            Process.Start("IExplore.exe")

            ' Display the contents of the favorites folder in the browser.
            Process.Start(myFavoritesPath)
        End Sub

        ' Opens URLs and .html documents using Internet Explorer.
        Sub OpenWithArguments()
            ' URLs are not considered documents. They can only be opened
            ' by passing them as arguments.
            Process.Start("IExplore.exe", "www.northwindtraders.com")

            ' Start a Web page using a browser associated with .html and .asp files.
            Process.Start("IExplore.exe", "C:\myPath\myFile.htm")
            Process.Start("IExplore.exe", "C:\myPath\myFile.asp")
        End Sub

        ' Uses the ProcessStartInfo class to start new processes,
        ' both in a minimized mode.
        Sub OpenWithStartInfo()
            Dim startInfo As New ProcessStartInfo("IExplore.exe")
            startInfo.WindowStyle = ProcessWindowStyle.Minimized

            Process.Start(startInfo)

            startInfo.Arguments = "www.northwindtraders.com"

            Process.Start(startInfo)
        End Sub

        Shared Sub Main()
            ' Get the path that stores favorite links.
            Dim myFavoritesPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Favorites)

            Dim myProcess As New MyProcess()

            myProcess.OpenApplication(myFavoritesPath)
            myProcess.OpenWithArguments()
            myProcess.OpenWithStartInfo()
        End Sub
    End Class
End Namespace 'MyProcessSample

I följande F#-exempel definieras en runProc funktion som startar en process, samlar in all utdata och felinformation och registrerar antalet millisekunder som processen har kört. Funktionen runProc har tre parametrar: namnet på programmet som ska startas, argumenten som ska skickas till programmet och startkatalogen.

open System
open System.Diagnostics

let runProc filename args startDir : seq<string> * seq<string> = 
    let timer = Stopwatch.StartNew()
    let procStartInfo = 
        ProcessStartInfo(
            RedirectStandardOutput = true,
            RedirectStandardError = true,
            UseShellExecute = false,
            FileName = filename,
            Arguments = args
        )
    match startDir with | Some d -> procStartInfo.WorkingDirectory <- d | _ -> ()

    let outputs = System.Collections.Generic.List<string>()
    let errors = System.Collections.Generic.List<string>()
    let outputHandler f (_sender:obj) (args:DataReceivedEventArgs) = f args.Data
    use p = new Process(StartInfo = procStartInfo)
    p.OutputDataReceived.AddHandler(DataReceivedEventHandler (outputHandler outputs.Add))
    p.ErrorDataReceived.AddHandler(DataReceivedEventHandler (outputHandler errors.Add))
    let started = 
        try
            p.Start()
        with | ex ->
            ex.Data.Add("filename", filename)
            reraise()
    if not started then
        failwithf "Failed to start process %s" filename
    printfn "Started %s with pid %i" p.ProcessName p.Id
    p.BeginOutputReadLine()
    p.BeginErrorReadLine()
    p.WaitForExit()
    timer.Stop()
    printfn "Finished %s after %A milliseconds" filename timer.ElapsedMilliseconds
    let cleanOut l = l |> Seq.filter (fun o -> String.IsNullOrEmpty o |> not)
    cleanOut outputs,cleanOut errors

Koden för funktionen runProc skrevs av ImaginaryDevelopment och är tillgänglig under den offentliga licensen Microsoft.

Kommentarer

En Process komponent ger åtkomst till en process som körs på en dator. En process, i enklaste termer, är en app som körs. En tråd är den grundläggande enhet som operativsystemet allokerar processortid till. En tråd kan köra valfri del av processens kod, inklusive delar som för närvarande körs av en annan tråd.

Komponenten Process är ett användbart verktyg för att starta, stoppa, kontrollera och övervaka appar. Du kan använda komponenten Process för att hämta en lista över de processer som körs, eller så kan du starta en ny process. En Process komponent används för att komma åt systemprocesser. När en Process komponent har initierats kan den användas för att hämta information om körningsprocessen. Sådan information omfattar uppsättningen trådar, de inlästa modulerna (.dll och .exe filer) och prestandainformation som mängden minne som processen använder.

Den här typen implementerar IDisposable gränssnittet. När du har använt typen bör du kassera den på ett direkt eller indirekt sätt. Om du vill ta bort typen direkt anropar du dess Dispose metod i ett try/finally block. Om du vill ta bort det indirekt använder du en språkkonstruktion som using (i C#) eller Using (i Visual Basic). Mer information finns i avsnittet "Använda ett objekt som implementerar IDisposable" i gränssnittsdokumentationen IDisposable .

Viktigt!

Att anropa metoder från den här klassen med ej betrodda data är en säkerhetsrisk. Anropa metoderna från den här klassen endast med betrodda data. För mer information, se Verifiera alla indata.

Anteckning

32-bitarsprocesser kan inte komma åt modulerna i en 64-bitarsprocess. Om du försöker få information om en 64-bitarsprocess från en 32-bitarsprocess får du ett Win32Exception undantag. En 64-bitarsprocess kan å andra sidan komma åt modulerna i en 32-bitarsprocess.

Processkomponenten hämtar information om en grupp med egenskaper samtidigt. När komponenten Process har fått information om en medlem i en grupp cachelagrade den värdena för de andra egenskaperna i gruppen och får inte ny information om de andra medlemmarna i gruppen förrän du anropar Refresh metoden. Därför är ett egenskapsvärde inte garanterat något nyare än det senaste anropet Refresh till metoden. Gruppuppdelningarna är beroende av operativsystem.

Om du har en sökvägsvariabel deklarerad i systemet med citattecken måste du fullständigt kvalificera den sökvägen när du startar en process som finns på den platsen. Annars hittar systemet inte sökvägen. Om det till exempel c:\mypath inte finns i sökvägen och du lägger till den med citattecken: path = %path%;"c:\mypath"måste du helt kvalificera alla processer när c:\mypath du startar den.

En systemprocess identifieras unikt i systemet av dess processidentifierare. Liksom många Windows resurser identifieras även en process av dess handtag, som kanske inte är unik på datorn. Ett handtag är den allmänna termen för en identifierare för en resurs. Operativsystemet bevarar processhandtaget, som nås via komponentens HandleProcess egenskap, även när processen har avslutats. Därför kan du hämta processens administrativa information, till exempel ExitCode (vanligtvis antingen noll för framgång eller en icke-noll felkod) och ExitTime. Handtag är en mycket värdefull resurs, så läckande handtag är mer virulent än läckande minne.

I macOS returnerar följande egenskaper 0:

Anteckning

Den här klassen innehåller ett länkbehov och ett arvskrav på klassnivå som gäller för alla medlemmar. En SecurityException utlöses när antingen den omedelbara anroparen eller den härledda klassen inte har fullständig förtroendebehörighet. Mer information om säkerhetskrav finns i Länkkrav.

.NET Core Notes

I .NET Framework använder klassen Process som standard Console kodningar, som vanligtvis är kodningar för kodningar för indata, utdata och fel. Kodsida 437 är till exempel standardkodning för klassen Console på system vars kultur är engelska (United States). .NET Core kan dock endast göra en begränsad delmängd av dessa kodningar tillgängliga. I så fall används Encoding.UTF8 den som standardkodning.

Om ett Process objekt är beroende av specifika kodningskoder för kodning av kodningar kan du fortfarande göra dem tillgängliga genom att göra följande innan du anropar några Process metoder:

  1. Hämta objektet EncodingProvider från egenskapen CodePagesEncodingProvider.Instance .

  2. EncodingProvider Skicka objektet till Encoding.RegisterProvider metoden för att göra de ytterligare kodningar som stöds av kodningsprovidern tillgängliga.

Klassen Process använder sedan automatiskt standardsystemkodningen i stället för UTF8, förutsatt att du har registrerat kodningsprovidern innan du anropar några Process metoder.

Konstruktorer

Name Description
Process()

Initierar en ny instans av Process klassen.

Egenskaper

Name Description
BasePriority

Hämtar basprioriteten för den associerade processen.

CanRaiseEvents

Hämtar ett värde som anger om komponenten kan generera en händelse.

(Ärvd från Component)
Container

Hämtar som IContainer innehåller Component.

(Ärvd från Component)
DesignMode

Hämtar ett värde som anger om det Component för närvarande är i designläge.

(Ärvd från Component)
EnableRaisingEvents

Hämtar eller anger om händelsen Exited ska aktiveras när processen avslutas.

Events

Hämtar listan över händelsehanterare som är kopplade till den här Component.

(Ärvd från Component)
ExitCode

Hämtar det värde som den associerade processen angav när den avslutades.

ExitTime

Hämtar den tid som den associerade processen avslutades.

Handle

Hämtar det interna handtaget för den associerade processen.

HandleCount

Hämtar antalet handtag som öppnas av processen.

HasExited

Hämtar ett värde som anger om den associerade processen har avslutats.

Id

Hämtar den unika identifieraren för den associerade processen.

MachineName

Hämtar namnet på den dator som den associerade processen körs på.

MainModule

Hämtar huvudmodulen för den associerade processen.

MainWindowHandle

Hämtar fönsterhandtaget för huvudfönstret i den associerade processen.

MainWindowTitle

Hämtar beskrivningen av huvudfönstret i processen.

MaxWorkingSet

Hämtar eller anger den maximala tillåtna arbetsuppsättningsstorleken, i byte, för den associerade processen.

MinWorkingSet

Hämtar eller anger minsta tillåtna arbetsuppsättningsstorlek, i byte, för den associerade processen.

Modules

Hämtar de moduler som har lästs in av den associerade processen.

NonpagedSystemMemorySize
Föråldrad.
Föråldrad.

Hämtar mängden icke-sidsidigt systemminne i byte som allokerats för den associerade processen.

NonpagedSystemMemorySize64

Hämtar mängden icke-sidsidigt systemminne i byte som allokerats för den associerade processen.

PagedMemorySize
Föråldrad.
Föråldrad.

Hämtar mängden sidsidigt minne i byte som allokerats för den associerade processen.

PagedMemorySize64

Hämtar mängden sidsidigt minne i byte som allokerats för den associerade processen.

PagedSystemMemorySize
Föråldrad.
Föråldrad.

Hämtar mängden växlingsbart systemminne i byte som allokerats för den associerade processen.

PagedSystemMemorySize64

Hämtar mängden växlingsbart systemminne i byte som allokerats för den associerade processen.

PeakPagedMemorySize
Föråldrad.
Föråldrad.

Hämtar den maximala mängden minne i växlingsfilen för virtuellt minne, i byte, som används av den associerade processen.

PeakPagedMemorySize64

Hämtar den maximala mängden minne i växlingsfilen för virtuellt minne, i byte, som används av den associerade processen.

PeakVirtualMemorySize
Föråldrad.
Föråldrad.

Hämtar den maximala mängden virtuellt minne i byte som används av den associerade processen.

PeakVirtualMemorySize64

Hämtar den maximala mängden virtuellt minne i byte som används av den associerade processen.

PeakWorkingSet
Föråldrad.
Föråldrad.

Hämtar den högsta arbetsuppsättningsstorleken för den associerade processen, i byte.

PeakWorkingSet64

Hämtar den maximala mängden fysiskt minne i byte som används av den associerade processen.

PriorityBoostEnabled

Hämtar eller anger ett värde som anger om den associerade processprioriteten tillfälligt ska ökas av operativsystemet när huvudfönstret har fokus.

PriorityClass

Hämtar eller anger den övergripande prioritetskategorin för den associerade processen.

PrivateMemorySize
Föråldrad.
Föråldrad.

Hämtar mängden privat minne i byte som allokerats för den associerade processen.

PrivateMemorySize64

Hämtar mängden privat minne i byte som allokerats för den associerade processen.

PrivilegedProcessorTime

Hämtar den privilegierade processortiden för den här processen.

ProcessName

Hämtar namnet på processen.

ProcessorAffinity

Hämtar eller anger de processorer som trådarna i den här processen kan schemaläggas att köras på.

Responding

Hämtar ett värde som anger om användargränssnittet för processen svarar.

SafeHandle

Hämtar det interna handtaget till den här processen.

SessionId

Hämtar sessionsidentifieraren för Terminal Services för den associerade processen.

Site

Hämtar eller ställer in ISite i Component.

(Ärvd från Component)
StandardError

Hämtar en ström som används för att läsa programmets felutdata.

StandardInput

Hämtar en ström som används för att skriva indata för programmet.

StandardOutput

Hämtar en ström som används för att läsa programmets textutdata.

StartInfo

Hämtar eller anger de egenskaper som ska skickas Start() till metoden för Process.

StartTime

Hämtar den tid då den associerade processen startades.

SynchronizingObject

Hämtar eller anger det objekt som används för att konvertera händelsehanteraranropen som utfärdas till följd av en processavslutshändelse.

Threads

Hämtar den uppsättning trådar som körs i den associerade processen.

TotalProcessorTime

Hämtar den totala processortiden för den här processen.

UserProcessorTime

Hämtar användarens processortid för den här processen.

VirtualMemorySize
Föråldrad.
Föråldrad.

Hämtar storleken på processens virtuella minne i byte.

VirtualMemorySize64

Hämtar mängden virtuellt minne i byte som allokerats för den associerade processen.

WorkingSet
Föråldrad.
Föråldrad.

Hämtar den associerade processens användning av fysiskt minne i byte.

WorkingSet64

Hämtar mängden fysiskt minne i byte som allokerats för den associerade processen.

Metoder

Name Description
BeginErrorReadLine()

Påbörjar asynkrona läsåtgärder i programmets omdirigerade StandardError ström.

BeginOutputReadLine()

Påbörjar asynkrona läsåtgärder i programmets omdirigerade StandardOutput ström.

CancelErrorRead()

Avbryter den asynkrona läsåtgärden i den omdirigerade StandardError strömmen för ett program.

CancelOutputRead()

Avbryter den asynkrona läsåtgärden i den omdirigerade StandardOutput strömmen för ett program.

Close()

Frigör alla resurser som är associerade med den här komponenten.

CloseMainWindow()

Stänger en process som har ett användargränssnitt genom att skicka ett nära meddelande till huvudfönstret.

CreateObjRef(Type)

Skapar ett objekt som innehåller all relevant information som krävs för att generera en proxy som används för att kommunicera med ett fjärrobjekt.

(Ärvd från MarshalByRefObject)
Dispose()

Släpper alla resurser som används av Component.

(Ärvd från Component)
Dispose(Boolean)

Frigör alla resurser som används av den här processen.

EnterDebugMode()

Placerar en Process komponent i tillstånd för att interagera med operativsystemprocesser som körs i ett särskilt läge genom att aktivera den inbyggda egenskapen SeDebugPrivilege i den aktuella tråden.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetCurrentProcess()

Hämtar en ny Process komponent och associerar den med den aktiva processen.

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetLifetimeService()

Hämtar det aktuella livslängdstjänstobjektet som styr livslängdsprincipen för den här instansen.

(Ärvd från MarshalByRefObject)
GetProcessById(Int32, String)

Returnerar en ny Process komponent med en processidentifierare och namnet på en dator i nätverket.

GetProcessById(Int32)

Returnerar en ny Process komponent, givet identifieraren för en process på den lokala datorn.

GetProcesses()

Skapar en ny Process komponent för varje processresurs på den lokala datorn.

GetProcesses(String)

Skapar en ny Process komponent för varje processresurs på den angivna datorn.

GetProcessesByName(String, String)

Skapar en matris med nya Process komponenter och associerar dem med alla processresurser på en fjärrdator som delar det angivna processnamnet.

GetProcessesByName(String)

Skapar en matris med nya Process komponenter och associerar dem med alla processresurser på den lokala datorn som delar det angivna processnamnet.

GetService(Type)

Returnerar ett objekt som representerar en tjänst som tillhandahålls av Component eller av dess Container.

(Ärvd från Component)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
InitializeLifetimeService()

Hämtar ett tjänstobjekt för livslängd för att styra livslängdsprincipen för den här instansen.

(Ärvd från MarshalByRefObject)
Kill()

Stoppar omedelbart den associerade processen.

LeaveDebugMode()

Tar en Process komponent ur tillståndet som gör att den kan interagera med operativsystemprocesser som körs i ett särskilt läge.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
MemberwiseClone(Boolean)

Skapar en ytlig kopia av det aktuella MarshalByRefObject objektet.

(Ärvd från MarshalByRefObject)
OnExited()

Genererar händelsen Exited .

Refresh()

Tar bort all information om den associerade processen som har cachelagrats i processkomponenten.

Start()

Startar (eller återanvänder) processresursen som anges av egenskapen för den här Process komponenten StartInfo och associerar den med komponenten.

Start(ProcessStartInfo)

Startar den processresurs som anges av parametern som innehåller processstartinformation (till exempel filnamnet på processen som ska startas) och associerar resursen med en ny Process komponent.

Start(String, String, SecureString, String)

Startar en processresurs genom att ange namnet på ett program, ett användarnamn, ett lösenord och en domän och associerar resursen med en ny Process komponent.

Start(String, String, String, SecureString, String)

Startar en processresurs genom att ange namnet på ett program, en uppsättning kommandoradsargument, ett användarnamn, ett lösenord och en domän och associerar resursen med en ny Process komponent.

Start(String, String)

Startar en processresurs genom att ange namnet på ett program och en uppsättning kommandoradsargument och associerar resursen med en ny Process komponent.

Start(String)

Startar en processresurs genom att ange namnet på ett dokument eller en programfil och associerar resursen med en ny Process komponent.

ToString()

Formaterar processens namn som en sträng, kombinerat med den överordnade komponenttypen, om tillämpligt.

WaitForExit()

Instruerar komponenten Process att vänta på obestämd tid innan den associerade processen avslutas.

WaitForExit(Int32)

Instruerar komponenten Process att vänta det angivna antalet millisekunder innan den associerade processen avslutas.

WaitForInputIdle()

Gör att komponenten Process väntar på obestämd tid för att den associerade processen ska ange ett inaktivt tillstånd. Den här överlagringen gäller endast processer med ett användargränssnitt och därför en meddelandeloop.

WaitForInputIdle(Int32)

Gör att komponenten Process väntar på att det angivna antalet millisekunder för den associerade processen ska ange ett inaktivt tillstånd. Den här överlagringen gäller endast processer med ett användargränssnitt och därför en meddelandeloop.

Händelser

Name Description
Disposed

Inträffar när komponenten tas bort av ett anrop till Dispose() metoden.

(Ärvd från Component)
ErrorDataReceived

Inträffar när ett program skriver till sin omdirigerade StandardError ström.

Exited

Inträffar när en process avslutas.

OutputDataReceived

Inträffar varje gång ett program skriver en rad till sin omdirigerade StandardOutput ström.

Gäller för

Se även