Process.Start Methode

Definitie

Start een procesresource en koppelt deze aan een Process onderdeel.

Overloads

Name Description
Start()

Hiermee start (of gebruikt) u de procesresource die is opgegeven door de StartInfo eigenschap van dit onderdeel en koppelt u deze Process aan het onderdeel.

Start(ProcessStartInfo)

Hiermee start u de procesresource die is opgegeven door de parameter met processtartgegevens (bijvoorbeeld de bestandsnaam van het proces dat moet worden gestart) en koppelt u de resource aan een nieuw Process onderdeel.

Start(String)

Start een procesresource door de naam van een document of toepassingsbestand op te geven en de resource te koppelen aan een nieuw Process onderdeel.

Start(String, String)

Start een procesresource door de naam van een toepassing en een set opdrachtregelargumenten op te geven en de resource te koppelen aan een nieuw Process onderdeel.

Start(String, String, SecureString, String)

Start een procesresource door de naam van een toepassing, een gebruikersnaam, een wachtwoord en een domein op te geven en de resource aan een nieuw Process onderdeel te koppelen.

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

Start een procesresource door de naam van een toepassing, een set opdrachtregelargumenten, een gebruikersnaam, een wachtwoord en een domein op te geven en de resource te koppelen aan een nieuw Process onderdeel.

Start()

Hiermee start (of gebruikt) u de procesresource die is opgegeven door de StartInfo eigenschap van dit onderdeel en koppelt u deze Process aan het onderdeel.

public:
 bool Start();
public bool Start();
member this.Start : unit -> bool
Public Function Start () As Boolean

Retouren

true als er een procesresource wordt gestart; false als er geen nieuwe procesresource wordt gestart (bijvoorbeeld als een bestaand proces opnieuw wordt gebruikt).

Uitzonderingen

Er is geen bestandsnaam opgegeven in het Process onderdeel StartInfo.

– of –

Het UseShellExecute lid van de StartInfo eigenschap is true terwijl RedirectStandardInput, RedirectStandardOutputof RedirectStandardError is true.

Er is een fout opgetreden bij het openen van het bijbehorende bestand.

Het procesobject is al verwijderd.

Methode wordt niet ondersteund op besturingssystemen zonder shell-ondersteuning, zoals Nano Server (alleen .NET Core).

Voorbeelden

In het volgende voorbeeld wordt een exemplaar van de Process klasse gebruikt om een proces te starten.

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

Opmerkingen

Gebruik deze overbelasting om een procesresource te starten en deze te koppelen aan het huidige Process onderdeel. De retourwaarde true geeft aan dat er een nieuwe procesresource is gestart. Als de procesresource die is opgegeven door het FileName lid van de StartInfo eigenschap al op de computer wordt uitgevoerd, wordt er geen extra procesresource gestart. In plaats daarvan wordt de actieve procesresource opnieuw gebruikt en false geretourneerd.

U kunt een ClickOnce-toepassing starten door de locatie (bijvoorbeeld een webadres) op te geven waaruit u de toepassing oorspronkelijk hebt geïnstalleerd. Start een ClickOnce-toepassing niet door de geïnstalleerde locatie op uw harde schijf op te geven.

Important

Het gebruik van een exemplaar van dit type met niet-vertrouwde gegevens is een beveiligingsrisico. Gebruik dit object alleen met vertrouwde gegevens. Zie Alle invoergegevens validerenvoor meer informatie.

Note

Als u Visual Studio gebruikt, is deze overbelasting van de methode Start degene die u invoegt in de code nadat u een Process-onderdeel naar de ontwerpfunctie hebt gesleept. Gebruik het Properties venster om de StartInfo categorie uit te vouwen en de juiste waarde naar de FileName eigenschap te schrijven. Uw wijzigingen worden weergegeven in de procedure van InitializeComponent het formulier.

Deze overbelasting van Start is geen static methode. U moet deze aanroepen vanuit een exemplaar van de Process klasse. Voordat u aanroeptStart, moet u eerst eigenschapsgegevens voor dit Process exemplaar opgevenStartInfo, omdat deze informatie wordt gebruikt om te bepalen welke procesresource moet worden gestart.

De andere overbelastingen van de Start methode zijn static leden. U hoeft geen exemplaar van het Process onderdeel te maken voordat u deze overbelastingen van de methode aanroept. In plaats daarvan kunt u de Process klasse zelf aanroepen Start en wordt er een nieuw Process onderdeel gemaakt als het proces is gestart. Of wordt null geretourneerd als een proces opnieuw is gebruikt. De procesresource wordt automatisch gekoppeld aan het nieuwe Process onderdeel dat door de Start methode wordt geretourneerd.

De StartInfo leden kunnen worden gebruikt om de functionaliteit van het dialoogvenster Run van het menu Windows Start te dupliceren. Alles wat in een opdrachtregel kan worden getypt, kan worden gestart door de juiste waarden in de eigenschap in te StartInfo stellen. De enige StartInfo eigenschap die moet worden ingesteld, is de FileName eigenschap. De FileName eigenschap hoeft geen uitvoerbaar bestand te zijn. Het kan van elk bestandstype zijn waarvoor de extensie is gekoppeld aan een toepassing die op het systeem is geïnstalleerd. De eigenschap FileName kan bijvoorbeeld een .txt extensie hebben als u tekstbestanden hebt gekoppeld aan een editor, zoals Kladblok, of als u .doc .doc bestanden hebt gekoppeld aan een tekstverwerkingsprogramma, zoals Microsoft Word.

In de opdrachtregel kunt u acties opgeven die moeten worden uitgevoerd voor bepaalde typen bestanden. U kunt bijvoorbeeld documenten afdrukken of tekstbestanden bewerken. Geef deze acties op met behulp van het Verb lid van de StartInfo eigenschap. Voor andere typen bestanden kunt u opdrachtregelargumenten opgeven wanneer u het bestand start vanuit het Run dialoogvenster. U kunt bijvoorbeeld een URL als argument doorgeven als u uw browser opgeeft als de FileName. Deze argumenten kunnen worden opgegeven in het lid van Arguments de StartInfo eigenschap.

Als u een padvariabele hebt gedeclareerd in uw systeem met aanhalingstekens, moet u dat pad volledig kwalificeren bij het starten van een proces dat op die locatie is gevonden. Anders vindt het systeem het pad niet. Als het pad zich bijvoorbeeld c:\mypath niet in uw pad bevindt en u het toevoegt met aanhalingstekens: path = %path%;"c:\mypath", moet u een proces c:\mypath volledig kwalificeren bij het starten ervan.

Note

ASP.NET webpagina- en serverbeheercode wordt uitgevoerd in de context van het ASP.NET-werkproces op de webserver. Als u de methode Start in een ASP.NET webpagina of serverbeheer gebruikt, wordt het nieuwe proces uitgevoerd op de webserver met beperkte machtigingen. Het proces wordt niet gestart in dezelfde context als de clientbrowser en heeft geen toegang tot het bureaublad van de gebruiker.

Wanneer u Start een proces start, moet u dit mogelijk sluiten of loopt u het risico dat u systeembronnen kwijtraakt. Sluit processen met of CloseMainWindowKill. U kunt controleren of een proces al is gesloten met behulp van HasExited de eigenschap.

Hier is een opmerking over appartementsstatussen in beheerde threads nodig. Wanneer UseShellExecute de eigenschap van StartInfo het procesonderdeel is true ingeschakeld, moet u ervoor zorgen dat u een threadingmodel voor uw toepassing hebt ingesteld door het kenmerk voor [STAThread] de main() methode in te stellen. Anders kan een beheerde thread een unknown status hebben of in de MTA status worden geplaatst, waarvan de laatste strijdig is met UseShellExecute zijn true. Sommige methoden vereisen dat de appartementsstatus niet is unknown. Als de status niet expliciet is ingesteld, kan de status van het appartement niet worden gewijzigd wanneer de toepassing een dergelijke methode tegenkomt.MTA MTA Er wordt echter een uitzondering gegenereerd wanneer de shell van het besturingssysteem de thread beheert.

Zie ook

Van toepassing op

Start(ProcessStartInfo)

Hiermee start u de procesresource die is opgegeven door de parameter met processtartgegevens (bijvoorbeeld de bestandsnaam van het proces dat moet worden gestart) en koppelt u de resource aan een nieuw Process onderdeel.

public:
 static System::Diagnostics::Process ^ Start(System::Diagnostics::ProcessStartInfo ^ startInfo);
public static System.Diagnostics.Process Start(System.Diagnostics.ProcessStartInfo startInfo);
static member Start : System.Diagnostics.ProcessStartInfo -> System.Diagnostics.Process
Public Shared Function Start (startInfo As ProcessStartInfo) As Process

Parameters

startInfo
ProcessStartInfo

De ProcessStartInfo informatie die wordt gebruikt om het proces te starten, inclusief de bestandsnaam en eventuele opdrachtregelargumenten.

Retouren

Een nieuwe Process die is gekoppeld aan de procesresource of null als er geen procesresource wordt gestart. Houd er rekening mee dat een nieuw proces dat naast reeds actieve exemplaren van hetzelfde proces wordt gestart, onafhankelijk is van de andere. Daarnaast kan Starten een niet-null-proces retourneren met de HasExited eigenschap die al is ingesteld op true. In dit geval kan het gestarte proces een bestaand exemplaar van zichzelf hebben geactiveerd en vervolgens zijn afgesloten.

Uitzonderingen

Er is geen bestandsnaam opgegeven in de eigenschap van FileName de startInfo parameter.

– of –

De UseShellExecute eigenschap van de startInfo parameter is true en de RedirectStandardInput, RedirectStandardOutputof RedirectStandardError eigenschap is ook true.

– of –

De UseShellExecute eigenschap van de startInfo parameter is true en de UserName eigenschap is niet null of leeg of de Password eigenschap is niet null.

De startInfo parameter is null.

Het procesobject is al verwijderd.

Er is een fout opgetreden bij het openen van het bijbehorende bestand.

– of –

Het bestand dat is opgegeven in de eigenschap van FileName de startInfo parameter, is niet gevonden.

– of –

De som van de lengte van de argumenten en de lengte van het volledige pad naar het proces overschrijdt 2080. Het foutbericht dat aan deze uitzondering is gekoppeld, kan een van de volgende zijn: 'Het gegevensgebied dat is doorgegeven aan een systeemaanroep is te klein', of 'Toegang is geweigerd'.

Methode wordt niet ondersteund op besturingssystemen zonder shell-ondersteuning, zoals Nano Server (alleen .NET Core).

Voorbeelden

In het volgende voorbeeld wordt eerst een exemplaar van Internet Explorer weergegeven en wordt de inhoud van de map Favorieten in de browser weergegeven. Vervolgens worden enkele andere exemplaren van Internet Explorer gestart en worden enkele specifieke pagina's of sites weergegeven. Ten slotte begint het Internet Explorer met het venster dat wordt geminimaliseerd tijdens het navigeren naar een specifieke site.

Raadpleeg de afzonderlijke eigenschappen van de ProcessStartInfo klasse voor aanvullende voorbeelden van andere toepassingen van deze methode.

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

Opmerkingen

Gebruik deze overbelasting om een procesresource te starten door een ProcessStartInfo exemplaar op te geven. De overbelasting koppelt de resource aan een nieuw Process object.

Important

Het aanroepen van deze methode met niet-vertrouwde gegevens is een beveiligingsrisico. Roep deze methode alleen aan met vertrouwde gegevens. Zie Alle invoergegevens validerenvoor meer informatie.

Note

Als het adres van het uitvoerbare bestand dat moet worden gestart een URL is, wordt het proces niet gestart en null geretourneerd.

Met deze overbelasting kunt u een proces starten zonder eerst een nieuw Process exemplaar te maken. Het gebruik van deze overbelasting met een ProcessStartInfo parameter is een alternatief voor de expliciete stappen voor het maken van een nieuw Process exemplaar, het instellen StartInfo van de eigenschappen en het aanroepen Start van het Process exemplaar.

Met behulp van een ProcessStartInfo exemplaar als parameter kunt u aanroepen Start met de meeste controle over wat wordt doorgegeven aan de aanroep om het proces te starten. Als u alleen een bestandsnaam of een bestandsnaam en argumenten moet doorgeven, is het niet nodig om een nieuw ProcessStartInfo exemplaar te maken, hoewel dat een optie is. De enige Process.StartInfo eigenschap die moet worden ingesteld, is de FileName eigenschap. De FileName eigenschap hoeft geen uitvoerbaar bestand weer te geven. Het kan van elk bestandstype zijn waarvoor de extensie is gekoppeld aan een toepassing die op het systeem is geïnstalleerd. De eigenschap FileName kan bijvoorbeeld een .txt extensie hebben als u tekstbestanden hebt gekoppeld aan een editor, zoals Kladblok, of als u .doc .doc bestanden hebt gekoppeld aan een tekstverwerkingsprogramma, zoals Microsoft Word.

U kunt een ClickOnce-toepassing starten door de locatie (bijvoorbeeld een webadres) op te geven waaruit u de toepassing oorspronkelijk hebt geïnstalleerd. Start een ClickOnce-toepassing niet door de geïnstalleerde locatie op uw harde schijf op te geven.

Als de ProcessStartInfo.UserName en ProcessStartInfo.Password eigenschappen van het StartInfo exemplaar zijn ingesteld, wordt de onbeheerde CreateProcessWithLogonW functie aangeroepen, waarmee het proces in een nieuw venster wordt gestart, zelfs als de ProcessStartInfo.CreateNoWindow eigenschapswaarde of true de ProcessStartInfo.WindowStyle eigenschapswaarde is ProcessWindowStyle.Hidden. Als de ProcessStartInfo.Domain eigenschap isnull, moet de ProcessStartInfo.UserName eigenschap de UPN-indeling hebben,DNS_domain_namegebruiker@.

In tegenstelling tot de andere overbelastingen is de overbelasting die Start geen parameters heeft geen static lid. Gebruik deze overbelasting wanneer u al een Process exemplaar hebt gemaakt en opgegeven begingegevens (inclusief de bestandsnaam) en u een procesresource wilt starten en deze wilt koppelen aan het bestaande Process exemplaar. Gebruik een van de static overbelastingen wanneer u een nieuw Process onderdeel wilt maken in plaats van een proces voor een bestaand onderdeel te starten. Met deze overbelasting en overbelasting zonder parameters kunt u de begininformatie voor de procesresource opgeven met behulp van een ProcessStartInfo exemplaar.

Als u een padvariabele hebt gedeclareerd in uw systeem met aanhalingstekens, moet u dat pad volledig kwalificeren bij het starten van een proces dat op die locatie is gevonden. Anders vindt het systeem het pad niet. Als het pad zich bijvoorbeeld c:\mypath niet in uw pad bevindt en u het toevoegt met aanhalingstekens: path = %path%;"c:\mypath", moet u een proces c:\mypath volledig kwalificeren bij het starten ervan.

Note

ASP.NET webpagina- en serverbeheercode wordt uitgevoerd in de context van het ASP.NET-werkproces op de webserver. Als u de methode Start in een ASP.NET webpagina of serverbeheer gebruikt, wordt het nieuwe proces uitgevoerd op de webserver met beperkte machtigingen. Het proces wordt niet gestart in dezelfde context als de clientbrowser en heeft geen toegang tot het bureaublad van de gebruiker.

Wanneer u Start een proces start, moet u dit mogelijk sluiten of loopt u het risico dat u systeembronnen kwijtraakt. Sluit processen met of CloseMainWindowKill. U kunt controleren of een proces al is gesloten met behulp van HasExited de eigenschap.

Hier is een opmerking over appartementsstatussen in beheerde threads nodig. Wanneer UseShellExecute de parameter is true ingeschakeld, moet u ervoor zorgen dat u een threadingmodel voor uw toepassing hebt ingesteld door het kenmerk voor [STAThread] de methode in te main() stellen.startInfo Anders kan een beheerde thread een unknown status hebben of in de MTA status worden geplaatst, waarvan de laatste strijdig is met UseShellExecute zijn true. Sommige methoden vereisen dat de appartementsstatus niet is unknown. Als de status niet expliciet is ingesteld, kan de status van het appartement niet worden gewijzigd wanneer de toepassing een dergelijke methode tegenkomt.MTA MTA Er wordt echter een uitzondering gegenereerd wanneer de shell van het besturingssysteem de thread beheert.

Zie ook

Van toepassing op

Start(String)

Start een procesresource door de naam van een document of toepassingsbestand op te geven en de resource te koppelen aan een nieuw Process onderdeel.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName);
public static System.Diagnostics.Process Start(string fileName);
static member Start : string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String) As Process

Parameters

fileName
String

De naam van een document of toepassingsbestand dat in het proces moet worden uitgevoerd.

Retouren

Een nieuwe Process die is gekoppeld aan de procesresource of null als er geen procesresource wordt gestart. Houd er rekening mee dat een nieuw proces dat naast reeds actieve exemplaren van hetzelfde proces wordt gestart, onafhankelijk is van de andere. Daarnaast kan Starten een niet-null-proces retourneren met de HasExited eigenschap die al is ingesteld op true. In dit geval kan het gestarte proces een bestaand exemplaar van zichzelf hebben geactiveerd en vervolgens zijn afgesloten.

Uitzonderingen

Er is een fout opgetreden bij het openen van het bijbehorende bestand.

– of –

Het bestand dat in het fileName bestand is opgegeven, kan niet worden gevonden.

Het procesobject is al verwijderd.

De omgevingsvariabele PATH bevat een tekenreeks met aanhalingstekens.

Voorbeelden

In het volgende voorbeeld wordt eerst een exemplaar van Internet Explorer weergegeven en wordt de inhoud van de map Favorieten in de browser weergegeven. Vervolgens worden enkele andere exemplaren van Internet Explorer gestart en worden enkele specifieke pagina's of sites weergegeven. Ten slotte begint het Internet Explorer met het venster dat wordt geminimaliseerd tijdens het navigeren naar een specifieke site.

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

Opmerkingen

Gebruik deze overbelasting om een procesresource te starten door de bestandsnaam op te geven. De overbelasting koppelt de resource aan een nieuw Process object.

Important

Het aanroepen van deze methode met niet-vertrouwde gegevens is een beveiligingsrisico. Roep deze methode alleen aan met vertrouwde gegevens. Zie Alle invoergegevens validerenvoor meer informatie.

Note

Als het adres van het uitvoerbare bestand dat moet worden gestart een URL is, wordt het proces niet gestart en null geretourneerd.

Met deze overbelasting kunt u een proces starten zonder eerst een nieuw Process exemplaar te maken. De overbelasting is een alternatief voor de expliciete stappen voor het maken van een nieuw Process exemplaar, het instellen van het FileName lid van de StartInfo eigenschap en het aanroepen Start van het Process exemplaar.

U kunt een ClickOnce-toepassing starten door de fileName parameter in te stellen op de locatie (bijvoorbeeld een webadres) waaruit u de toepassing oorspronkelijk hebt geïnstalleerd. Start een ClickOnce-toepassing niet door de geïnstalleerde locatie op uw harde schijf op te geven.

Het starten van een proces door de bestandsnaam op te geven is vergelijkbaar met het typen van de informatie in het dialoogvenster Run van het menu Windows Start. Daarom hoeft de bestandsnaam geen uitvoerbaar bestand weer te geven. Het kan van elk bestandstype zijn waarvoor de extensie is gekoppeld aan een toepassing die op het systeem is geïnstalleerd. De bestandsnaam kan bijvoorbeeld een .txt extensie hebben als u tekstbestanden hebt gekoppeld aan een editor, zoals Kladblok, of .doc als u .doc bestanden hebt gekoppeld aan een tekstverwerkingsprogramma, zoals Microsoft Word. Op dezelfde manier dat in het Run dialoogvenster een uitvoerbare bestandsnaam met of zonder de .exe-extensie kan worden geaccepteerd, is de .exe extensie optioneel in de fileName parameter. U kunt de fileName parameter bijvoorbeeld instellen op 'Notepad.exe' of 'Kladblok'.

Deze overbelasting staat geen opdrachtregelargumenten toe voor het proces. Als u een of meer opdrachtregelargumenten voor het proces wilt opgeven, gebruikt u de Process.Start(ProcessStartInfo) of Process.Start(String, String) overbelasting.

In tegenstelling tot de andere overbelastingen is de overbelasting die Start geen parameters heeft geen static lid. Gebruik deze overbelasting wanneer u al een Process exemplaar hebt gemaakt en opgegeven begingegevens (inclusief de bestandsnaam) en u een procesresource wilt starten en deze wilt koppelen aan het bestaande Process exemplaar. Gebruik een van de static overbelastingen wanneer u een nieuw Process onderdeel wilt maken in plaats van een proces voor een bestaand onderdeel te starten. Zowel deze overbelasting als de overbelasting die geen parameters bevat, kunt u de bestandsnaam van de procesresource opgeven die moet worden gestart.

Als u een padvariabele hebt gedeclareerd in uw systeem met aanhalingstekens, moet u dat pad volledig kwalificeren bij het starten van een proces dat op die locatie is gevonden. Anders vindt het systeem het pad niet. Als het pad zich bijvoorbeeld c:\mypath niet in uw pad bevindt en u het toevoegt met aanhalingstekens: path = %path%;"c:\mypath", moet u een proces c:\mypath volledig kwalificeren bij het starten ervan.

Note

ASP.NET webpagina- en serverbeheercode wordt uitgevoerd in de context van het ASP.NET-werkproces op de webserver. Als u de methode Start in een ASP.NET webpagina of serverbeheer gebruikt, wordt het nieuwe proces uitgevoerd op de webserver met beperkte machtigingen. Het proces wordt niet gestart in dezelfde context als de clientbrowser en heeft geen toegang tot het bureaublad van de gebruiker.

Wanneer u Start een proces start, moet u dit mogelijk sluiten of loopt u het risico dat u systeembronnen kwijtraakt. Sluit processen met of CloseMainWindowKill. U kunt controleren of een proces al is gesloten met behulp van HasExited de eigenschap.

Hier is een opmerking over appartementsstatussen in beheerde threads nodig. Wanneer UseShellExecute de eigenschap van StartInfo het procesonderdeel is true ingeschakeld, moet u ervoor zorgen dat u een threadingmodel voor uw toepassing hebt ingesteld door het kenmerk voor [STAThread] de main() methode in te stellen. Anders kan een beheerde thread een unknown status hebben of in de MTA status worden geplaatst, waarvan de laatste strijdig is met UseShellExecute zijn true. Sommige methoden vereisen dat de appartementsstatus niet is unknown. Als de status niet expliciet is ingesteld, kan de status van het appartement niet worden gewijzigd wanneer de toepassing een dergelijke methode tegenkomt.MTA MTA Er wordt echter een uitzondering gegenereerd wanneer de shell van het besturingssysteem de thread beheert.

Zie ook

Van toepassing op

Start(String, String)

Start een procesresource door de naam van een toepassing en een set opdrachtregelargumenten op te geven en de resource te koppelen aan een nieuw Process onderdeel.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments);
public static System.Diagnostics.Process Start(string fileName, string arguments);
static member Start : string * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As String) As Process

Parameters

fileName
String

De naam van een toepassingsbestand dat in het proces moet worden uitgevoerd.

arguments
String

Opdrachtregelargumenten die moeten worden doorgegeven bij het starten van het proces.

Retouren

Een nieuwe Process die is gekoppeld aan de procesresource of null als er geen procesresource wordt gestart. Houd er rekening mee dat een nieuw proces dat naast reeds actieve exemplaren van hetzelfde proces wordt gestart, onafhankelijk is van de andere. Daarnaast kan Starten een niet-null-proces retourneren met de HasExited eigenschap die al is ingesteld op true. In dit geval kan het gestarte proces een bestaand exemplaar van zichzelf hebben geactiveerd en vervolgens zijn afgesloten.

Uitzonderingen

De fileName of arguments parameter is null.

Er is een fout opgetreden bij het openen van het bijbehorende bestand.

– of –

Het bestand dat in het fileName bestand is opgegeven, kan niet worden gevonden.

– of –

De som van de lengte van de argumenten en de lengte van het volledige pad naar het proces overschrijdt 2080. Het foutbericht dat aan deze uitzondering is gekoppeld, kan een van de volgende zijn: 'Het gegevensgebied dat is doorgegeven aan een systeemaanroep is te klein', of 'Toegang is geweigerd'.

Het procesobject is al verwijderd.

De omgevingsvariabele PATH bevat een tekenreeks met aanhalingstekens.

Voorbeelden

In het volgende voorbeeld wordt eerst een exemplaar van Internet Explorer weergegeven en wordt de inhoud van de map Favorieten in de browser weergegeven. Vervolgens worden enkele andere exemplaren van Internet Explorer gestart en worden enkele specifieke pagina's of sites weergegeven. Ten slotte begint het Internet Explorer met het venster dat wordt geminimaliseerd tijdens het navigeren naar een specifieke site.

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

Opmerkingen

Gebruik deze overbelasting om een procesresource te starten door de bestandsnaam en opdrachtregelargumenten op te geven. De overbelasting koppelt de resource aan een nieuw Process object.

Important

Het aanroepen van deze methode met niet-vertrouwde gegevens is een beveiligingsrisico. Roep deze methode alleen aan met vertrouwde gegevens. Zie Alle invoergegevens validerenvoor meer informatie.

Note

Als het adres van het uitvoerbare bestand dat moet worden gestart een URL is, wordt het proces niet gestart en null geretourneerd.

Met deze overbelasting kunt u een proces starten zonder eerst een nieuw Process exemplaar te maken. De overbelasting is een alternatief voor de expliciete stappen voor het maken van een nieuw Process exemplaar, het instellen van de FileName en Arguments leden van de StartInfo eigenschap en het aanroepen Start van het Process exemplaar.

Het starten van een proces door de bestandsnaam en argumenten op te geven, is vergelijkbaar met het typen van de bestandsnaam en opdrachtregelargumenten in het dialoogvenster Run van het menu Windows Start. Daarom hoeft de bestandsnaam geen uitvoerbaar bestand weer te geven. Het kan van elk bestandstype zijn waarvoor de extensie is gekoppeld aan een toepassing die op het systeem is geïnstalleerd. De bestandsnaam kan bijvoorbeeld een .txt extensie hebben als u tekstbestanden hebt gekoppeld aan een editor, zoals Kladblok, of .doc als u .doc bestanden hebt gekoppeld aan een tekstverwerkingsprogramma, zoals Microsoft Word. Op dezelfde manier dat in het Run dialoogvenster een uitvoerbare bestandsnaam met of zonder de .exe-extensie kan worden geaccepteerd, is de .exe extensie optioneel in de fileName parameter. U kunt de fileName parameter bijvoorbeeld instellen op 'Notepad.exe' of 'Kladblok'. Als de fileName parameter een uitvoerbaar bestand vertegenwoordigt, kan de arguments parameter een bestand vertegenwoordigen waarop moet worden gehandeld, zoals het tekstbestand in Notepad.exe myfile.txt. Als de fileName parameter een opdrachtbestand (.cmd) vertegenwoordigt, moet de arguments parameter een '/c' of '/k' argument bevatten om op te geven of het opdrachtvenster wordt afgesloten of na voltooiing blijft.

In tegenstelling tot de andere overbelastingen is de overbelasting die Start geen parameters heeft geen static lid. Gebruik deze overbelasting wanneer u al een Process exemplaar hebt gemaakt en opgegeven begingegevens (inclusief de bestandsnaam) en u een procesresource wilt starten en deze wilt koppelen aan het bestaande Process exemplaar. Gebruik een van de static overbelastingen wanneer u een nieuw Process onderdeel wilt maken in plaats van een proces voor een bestaand onderdeel te starten. Zowel deze overbelasting als de overbelasting die geen parameters bevat, kunt u de bestandsnaam van de procesresource opgeven om te starten en opdrachtregelargumenten door te geven.

Als u een padvariabele hebt gedeclareerd in uw systeem met aanhalingstekens, moet u dat pad volledig kwalificeren bij het starten van een proces dat op die locatie is gevonden. Anders vindt het systeem het pad niet. Als het pad zich bijvoorbeeld c:\mypath niet in uw pad bevindt en u het toevoegt met aanhalingstekens: path = %path%;"c:\mypath", moet u een proces c:\mypath volledig kwalificeren bij het starten ervan.

Note

ASP.NET webpagina- en serverbeheercode wordt uitgevoerd in de context van het ASP.NET-werkproces op de webserver. Als u de methode Start in een ASP.NET webpagina of serverbeheer gebruikt, wordt het nieuwe proces uitgevoerd op de webserver met beperkte machtigingen. Het proces wordt niet gestart in dezelfde context als de clientbrowser en heeft geen toegang tot het bureaublad van de gebruiker.

Wanneer u Start een proces start, moet u dit mogelijk sluiten of loopt u het risico dat u systeembronnen kwijtraakt. Sluit processen met of CloseMainWindowKill. U kunt controleren of een proces al is gesloten met behulp van HasExited de eigenschap.

Hier is een opmerking over appartementsstatussen in beheerde threads nodig. Wanneer UseShellExecute de eigenschap van StartInfo het procesonderdeel is true ingeschakeld, moet u ervoor zorgen dat u een threadingmodel voor uw toepassing hebt ingesteld door het kenmerk voor [STAThread] de main() methode in te stellen. Anders kan een beheerde thread een unknown status hebben of in de MTA status worden geplaatst, waarvan de laatste strijdig is met UseShellExecute zijn true. Sommige methoden vereisen dat de appartementsstatus niet is unknown. Als de status niet expliciet is ingesteld, kan de status van het appartement niet worden gewijzigd wanneer de toepassing een dergelijke methode tegenkomt.MTA MTA Er wordt echter een uitzondering gegenereerd wanneer de shell van het besturingssysteem de thread beheert.

Zie ook

Van toepassing op

Start(String, String, SecureString, String)

Belangrijk

Deze API is niet CLS-conform.

Start een procesresource door de naam van een toepassing, een gebruikersnaam, een wachtwoord en een domein op te geven en de resource aan een nieuw Process onderdeel te koppelen.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ userName, System::Security::SecureString ^ password, System::String ^ domain);
public static System.Diagnostics.Process Start(string fileName, string userName, System.Security.SecureString password, string domain);
[System.CLSCompliant(false)]
public static System.Diagnostics.Process Start(string fileName, string userName, System.Security.SecureString password, string domain);
static member Start : string * string * System.Security.SecureString * string -> System.Diagnostics.Process
[<System.CLSCompliant(false)>]
static member Start : string * string * System.Security.SecureString * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, userName As String, password As SecureString, domain As String) As Process

Parameters

fileName
String

De naam van een toepassingsbestand dat in het proces moet worden uitgevoerd.

userName
String

De gebruikersnaam die moet worden gebruikt bij het starten van het proces.

password
SecureString

Een SecureString met het wachtwoord dat moet worden gebruikt bij het starten van het proces.

domain
String

Het domein dat moet worden gebruikt bij het starten van het proces.

Retouren

Een nieuwe Process die is gekoppeld aan de procesresource of null als er geen procesresource wordt gestart. Houd er rekening mee dat een nieuw proces dat naast reeds actieve exemplaren van hetzelfde proces wordt gestart, onafhankelijk is van de andere. Daarnaast kan Starten een niet-null-proces retourneren met de HasExited eigenschap die al is ingesteld op true. In dit geval kan het gestarte proces een bestaand exemplaar van zichzelf hebben geactiveerd en vervolgens zijn afgesloten.

Kenmerken

Uitzonderingen

Er is geen bestandsnaam opgegeven.

Er is een fout opgetreden bij het openen van het bijbehorende bestand.

– of –

Het bestand dat in het fileName bestand is opgegeven, kan niet worden gevonden.

Het procesobject is al verwijderd.

Dit lid wordt niet ondersteund in Linux of macOS (alleen .NET Core).

Voorbeelden

In het volgende codevoorbeeld ziet u hoe deze overbelasting wordt gebruikt om een uitvoerbaar bestand te starten en wordt ook het genereren van een Win32Exception bestand gedemonstreerd wanneer een poging wordt gedaan om een toepassing te starten die is gekoppeld aan een niet-uitvoerbaar bestand.

// NOTE: This example requires a text.txt file file in your Documents folder
using System;
using System.Diagnostics;
using System.Security;
using System.ComponentModel;

class Example
{
    static void Main()
    {
        Console.Write("Enter your domain: ");
        string domain = Console.ReadLine();
        Console.Write("Enter you user name: ");
        string uname = Console.ReadLine();
        Console.Write("Enter your password: ");
        SecureString password = new SecureString();
        ConsoleKeyInfo key;
        do
        {
            key = Console.ReadKey(true);

            // Ignore any key out of range.
            if (((int)key.Key) >= 33 && ((int)key.Key <= 90) && key.Key != ConsoleKey.Enter)
            {
                // Append the character to the password.
                password.AppendChar(key.KeyChar);
                Console.Write("*");
            }
            // Exit if Enter key is pressed.
        } while (key.Key != ConsoleKey.Enter);
        Console.WriteLine();

        try
        {
            Console.WriteLine("\nTrying to launch NotePad using your login information...");
            Process.Start("notepad.exe", uname, password, domain);
        }
        catch (Win32Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\";

        try
        {
            // The following call to Start succeeds if test.txt exists.
            Console.WriteLine("\nTrying to launch 'text.txt'...");
            Process.Start(path + "text.txt");
        }
        catch (Win32Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

        try
        {
            // Attempting to start in a shell using this Start overload fails. This causes
            // the following exception, which is picked up in the catch block below:
            // The specified executable is not a valid application for this OS platform.
            Console.WriteLine("\nTrying to launch 'text.txt' with your login information...");
            Process.Start(path + "text.txt", uname, password, domain);
        }
        catch (Win32Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        finally
        {
            password.Dispose();
        }
    }
}
// NOTE: This example requires a text.txt file file in your Documents folder
open System
open System.Diagnostics
open System.Security
open System.ComponentModel

printf "Enter your domain: "
let domain = stdin.ReadLine()
printf "Enter you user name: "
let uname = stdin.ReadLine()
printf "Enter your password: "
let password = new SecureString()

let mutable key = Console.ReadKey(true)

while key.Key <> ConsoleKey.Enter do
    // Ignore any key out of range.
    if int key.Key >= 33 && int key.Key <= 90 && key.Key <> ConsoleKey.Enter then
        // Append the character to the password.
        password.AppendChar key.KeyChar
        Console.Write "*"

    key <- Console.ReadKey(true)

printfn ""

try
    printfn "\nTrying to launch NotePad using your login information..."
    Process.Start("notepad.exe", uname, password, domain) |> ignore
with :? Win32Exception as ex ->
    printfn $"{ex.Message}"

let path = Environment.GetFolderPath Environment.SpecialFolder.MyDocuments + @"\"

try
    // The following call to Start succeeds if test.txt exists.
    printfn "\nTrying to launch 'text.txt'..."
    Process.Start $"{path}text.txt" |> ignore
with :? Win32Exception as ex ->
    printfn $"{ex.Message}"

try
    try
        // Attempting to start in a shell using this Start overload fails. This causes
        // the following exception, which is picked up in the catch block below:
        // The specified executable is not a valid application for this OS platform.
        printfn "\nTrying to launch 'text.txt' with your login information..."
        Process.Start($"{path}text.txt", uname, password, domain) |> ignore
    with :? Win32Exception as ex ->
        printfn $"{ex.Message}"
finally
    password.Dispose()
' This sample requires a text.txt file file in your documents folder.
' You'll also need to set the startup object in the project to Sub Main.
Imports System.Diagnostics
Imports System.Security
Imports System.ComponentModel

Module Program
    Sub Main()
        Console.Write("Enter your domain: ")
        Dim domain As String = Console.ReadLine()
        Console.Write("Enter you user name: ")
        Dim uname As String = Console.ReadLine()
        Console.Write("Enter your password: ")
        Dim password As New SecureString()
        Dim key As ConsoleKeyInfo
        Do
            key = Console.ReadKey(True)

            ' Ignore any key out of range.
            If key.Key >= 33 AndAlso key.Key <= 90 AndAlso key.Key <> ConsoleKey.Enter Then
                ' Append the character to the password.
                password.AppendChar(key.KeyChar)
                Console.Write("*")
            End If
            ' Exit if Enter key is pressed.
        Loop While key.Key <> ConsoleKey.Enter
        Console.WriteLine()

        Try
            Console.WriteLine(vbCrLf + "Trying to launch NotePad using your login information...")
            Process.Start("notepad.exe", uname, password, domain)
        Catch ex As Win32Exception
            Console.WriteLine(ex.Message)
        End Try

        Dim path As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\"

        Try
            ' The following call to Start succeeds if test.txt exists.
            Console.WriteLine(vbCrLf + "Trying to launch 'text.txt'...")
            Process.Start(path + "Text.txt")
        Catch ex As Win32Exception
            Console.WriteLine(ex.Message)
        End Try

        Try
            ' Attempting to start in a shell using this Start overload fails. This causes
            ' the following exception, which is picked up in the catch block below:
            ' The specified executable is not a valid application for this OS platform.
            Console.WriteLine(vbCrLf + "Trying to launch 'text.txt' with your login information...")
            Process.Start(path + "Text.txt", uname, password, domain)
        Catch ex As Win32Exception
            Console.WriteLine(ex.Message)
        Finally
            password.Dispose()
        End Try
    End Sub
End Module

Opmerkingen

Gebruik deze overbelasting om een nieuw proces en de primaire thread te maken door de bestandsnaam, gebruikersnaam, wachtwoord en domein op te geven. Het nieuwe proces voert vervolgens het opgegeven uitvoerbare bestand uit in de beveiligingscontext van de opgegeven referenties (gebruiker, domein en wachtwoord).

Important

Het aanroepen van deze methode met niet-vertrouwde gegevens is een beveiligingsrisico. Roep deze methode alleen aan met vertrouwde gegevens. Zie Alle invoergegevens validerenvoor meer informatie.

Note

Wanneer het uitvoerbare bestand zich op een extern station bevindt, moet u de netwerkshare identificeren met behulp van een URI (Uniform Resource Identifier), niet een gekoppelde stationsletter.

Note

Als het adres van het uitvoerbare bestand dat moet worden gestart een URL is, wordt het proces niet gestart en null geretourneerd.

Met deze overbelasting kunt u een proces starten zonder eerst een nieuw Process exemplaar te maken. De overbelasting is een alternatief voor de expliciete stappen voor het maken van een nieuw Process exemplaar, het instellen van de FileName, UserNameen DomainPasswordde eigenschappen van de StartInfo eigenschap en het aanroepen Start van het Process exemplaar.

Op dezelfde manier als het dialoogvenster Uitvoeren een uitvoerbare bestandsnaam met of zonder de .exe-extensie kan accepteren, is de .exe extensie optioneel in de fileName parameter. U kunt de fileName parameter bijvoorbeeld instellen op 'Notepad.exe' of 'Kladblok'. Als de fileName parameter een uitvoerbaar bestand vertegenwoordigt, kan de arguments parameter een bestand vertegenwoordigen waarop moet worden gehandeld, zoals het tekstbestand in Notepad.exe myfile.txt.

Note

De bestandsnaam moet een uitvoerbaar bestand vertegenwoordigen in de Start overbelastingen met userName, passworden domain parameters.

Wanneer u Start een proces start, moet u dit mogelijk sluiten of loopt u het risico dat u systeembronnen kwijtraakt. Sluit processen met of CloseMainWindowKill. U kunt controleren of een proces al is gesloten met behulp van HasExited de eigenschap.

Van toepassing op

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

Belangrijk

Deze API is niet CLS-conform.

Start een procesresource door de naam van een toepassing, een set opdrachtregelargumenten, een gebruikersnaam, een wachtwoord en een domein op te geven en de resource te koppelen aan een nieuw Process onderdeel.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments, System::String ^ userName, System::Security::SecureString ^ password, System::String ^ domain);
public static System.Diagnostics.Process Start(string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
[System.CLSCompliant(false)]
public static System.Diagnostics.Process Start(string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
static member Start : string * string * string * System.Security.SecureString * string -> System.Diagnostics.Process
[<System.CLSCompliant(false)>]
static member Start : string * string * string * System.Security.SecureString * string -> System.Diagnostics.Process
Public Shared Function Start (fileName As String, arguments As String, userName As String, password As SecureString, domain As String) As Process

Parameters

fileName
String

De naam van een toepassingsbestand dat in het proces moet worden uitgevoerd.

arguments
String

Opdrachtregelargumenten die moeten worden doorgegeven bij het starten van het proces.

userName
String

De gebruikersnaam die moet worden gebruikt bij het starten van het proces.

password
SecureString

Een SecureString met het wachtwoord dat moet worden gebruikt bij het starten van het proces.

domain
String

Het domein dat moet worden gebruikt bij het starten van het proces.

Retouren

Een nieuwe Process die is gekoppeld aan de procesresource of null als er geen procesresource wordt gestart. Houd er rekening mee dat een nieuw proces dat naast reeds actieve exemplaren van hetzelfde proces wordt gestart, onafhankelijk is van de andere. Daarnaast kan Starten een niet-null-proces retourneren met de HasExited eigenschap die al is ingesteld op true. In dit geval kan het gestarte proces een bestaand exemplaar van zichzelf hebben geactiveerd en vervolgens zijn afgesloten.

Kenmerken

Uitzonderingen

Er is geen bestandsnaam opgegeven.

Er is een fout opgetreden bij het openen van het bijbehorende bestand.

– of –

Het bestand dat in het fileName bestand is opgegeven, kan niet worden gevonden.

– of –

De som van de lengte van de argumenten en de lengte van het volledige pad naar het bijbehorende bestand overschrijdt 2080. Het foutbericht dat aan deze uitzondering is gekoppeld, kan een van de volgende zijn: 'Het gegevensgebied dat is doorgegeven aan een systeemaanroep is te klein', of 'Toegang is geweigerd'.

Het procesobject is al verwijderd.

Dit lid wordt niet ondersteund in Linux of macOS (alleen .NET Core).

Opmerkingen

Gebruik deze overbelasting om een nieuw proces en de primaire thread te maken door de bestandsnaam, opdrachtregelargumenten, gebruikersnaam, wachtwoord en domein op te geven. Het nieuwe proces voert vervolgens het opgegeven uitvoerbare bestand uit in de beveiligingscontext van de opgegeven referenties (gebruiker, domein en wachtwoord).

Important

Het aanroepen van deze methode met niet-vertrouwde gegevens is een beveiligingsrisico. Roep deze methode alleen aan met vertrouwde gegevens. Zie Alle invoergegevens validerenvoor meer informatie.

Note

Wanneer het uitvoerbare bestand zich op een extern station bevindt, moet u de netwerkshare identificeren met behulp van een URI (Uniform Resource Identifier), niet een gekoppelde stationsletter.

Note

Als het adres van het uitvoerbare bestand dat moet worden gestart een URL is, wordt het proces niet gestart en null geretourneerd.

Met deze overbelasting kunt u een proces starten zonder eerst een nieuw Process exemplaar te maken. De overbelasting is een alternatief voor de expliciete stappen voor het maken van een nieuw Process exemplaar, het instellen van de FileName, ArgumentsUserName, , Passworden Domain de eigenschappen van de StartInfo eigenschap en het aanroepen Start van het Process exemplaar.

Op dezelfde manier als het dialoogvenster Uitvoeren een uitvoerbare bestandsnaam met of zonder de .exe-extensie kan accepteren, is de .exe extensie optioneel in de fileName parameter. U kunt de fileName parameter bijvoorbeeld instellen op 'Notepad.exe' of 'Kladblok'. Als de fileName parameter een uitvoerbaar bestand vertegenwoordigt, kan de arguments parameter een bestand vertegenwoordigen waarop moet worden gehandeld, zoals het tekstbestand in Notepad.exe myfile.txt.

Note

De bestandsnaam moet een uitvoerbaar bestand vertegenwoordigen in de Start overbelastingen met userName, passworden domain parameters.

Wanneer u Start een proces start, moet u dit mogelijk sluiten of loopt u het risico dat u systeembronnen kwijtraakt. Sluit processen met of CloseMainWindowKill. U kunt controleren of een proces al is gesloten met behulp van HasExited de eigenschap.

Van toepassing op