Process.Start Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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()
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.