Process.Start Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Startar en processresurs och associerar den med en Process komponent.
Överlagringar
| Name | Description |
|---|---|
| Start() |
Startar (eller återanvänder) processresursen som anges av egenskapen för den här Process komponenten StartInfo och associerar den med komponenten. |
| Start(ProcessStartInfo) |
Startar den processresurs som anges av parametern som innehåller processstartinformation (till exempel filnamnet på processen som ska startas) och associerar resursen med en ny Process komponent. |
| Start(String) |
Startar en processresurs genom att ange namnet på ett dokument eller en programfil och associerar resursen med en ny Process komponent. |
| Start(String, String) |
Startar en processresurs genom att ange namnet på ett program och en uppsättning kommandoradsargument och associerar resursen med en ny Process komponent. |
| Start(String, String, SecureString, String) |
Startar en processresurs genom att ange namnet på ett program, ett användarnamn, ett lösenord och en domän och associerar resursen med en ny Process komponent. |
| Start(String, String, String, SecureString, String) |
Startar en processresurs genom att ange namnet på ett program, en uppsättning kommandoradsargument, ett användarnamn, ett lösenord och en domän och associerar resursen med en ny Process komponent. |
Start()
public:
bool Start();
public bool Start();
member this.Start : unit -> bool
Public Function Start () As Boolean
Returer
true om en processresurs startas. false om ingen ny processresurs startas (till exempel om en befintlig process återanvänds).
Undantag
Inget filnamn angavs i komponentens ProcessStartInfo.
-eller-
Medlemmen UseShellExecute i StartInfo egenskapen är true medan RedirectStandardInput, RedirectStandardOutputeller RedirectStandardError är true.
Det uppstod ett fel när den associerade filen skulle öppnas.
Processobjektet har redan tagits bort.
Metoden stöds inte på operativsystem utan gränssnittsstöd, till exempel Nano Server (endast .NET Core).
Exempel
I följande exempel används en instans av Process klassen för att starta en process.
using System;
using System.Diagnostics;
using System.ComponentModel;
namespace MyProcessSample
{
class MyProcess
{
public static void Main()
{
try
{
using (Process myProcess = new Process())
{
myProcess.StartInfo.UseShellExecute = false;
// You can start any process, HelloWorld is a do-nothing example.
myProcess.StartInfo.FileName = "C:\\HelloWorld.exe";
myProcess.StartInfo.CreateNoWindow = true;
myProcess.Start();
// This code assumes the process you are starting will terminate itself.
// Given that it is started without a window so you cannot terminate it
// on the desktop, it must terminate itself or you can do it programmatically
// from this application using the Kill method.
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}
open System.Diagnostics
try
use myProcess = new Process()
myProcess.StartInfo.UseShellExecute <- false
// You can start any process, HelloWorld is a do-nothing example.
myProcess.StartInfo.FileName <- @"C:\HelloWorld.exe"
myProcess.StartInfo.CreateNoWindow <- true
myProcess.Start() |> ignore
// This code assumes the process you are starting will terminate itself.
// Given that it is started without a window so you cannot terminate it
// on the desktop, it must terminate itself or you can do it programmatically
// from this application using the Kill method.
with e ->
printfn $"{e.Message}"
Imports System.Diagnostics
Imports System.ComponentModel
Namespace MyProcessSample
Class MyProcess
Public Shared Sub Main()
Try
Using myProcess As New Process()
myProcess.StartInfo.UseShellExecute = False
' You can start any process, HelloWorld is a do-nothing example.
myProcess.StartInfo.FileName = "C:\\HelloWorld.exe"
myProcess.StartInfo.CreateNoWindow = True
myProcess.Start()
' This code assumes the process you are starting will terminate itself.
' Given that it is started without a window so you cannot terminate it
' on the desktop, it must terminate itself or you can do it programmatically
' from this application using the Kill method.
End Using
Catch e As Exception
Console.WriteLine((e.Message))
End Try
End Sub
End Class
End Namespace
Kommentarer
Använd den här överlagringen för att starta en processresurs och associera den med den aktuella Process komponenten. Returvärdet true anger att en ny processresurs har startats. Om processresursen FileName som angetts av medlemmen i StartInfo egenskapen redan körs på datorn startas ingen ytterligare processresurs. I stället återanvänds den processresurs som körs och false returneras.
Du kan starta ett ClickOnce-program genom att ange platsen (till exempel en webbadress) som du ursprungligen installerade programmet från. Starta inte ett ClickOnce-program genom att ange dess installerade plats på hårddisken.
Important
Att använda en instans av den här typen med ej betrodda data är en säkerhetsrisk. Använd endast det här objektet med betrodda data. För mer information, se Verifiera alla indata.
Note
Om du använder Visual Studio är den här överlagringen av metoden Start den som du infogar i koden när du har dragit en Process komponent till designern. Använd fönstret Properties för att expandera StartInfo kategorin och skriva lämpligt värde till egenskapen FileName . Ändringarna visas i formulärets InitializeComponent procedur.
Den här överlagringen av Start är inte en static metod. Du måste anropa den från en instans av Process klassen. Innan du anropar Startmåste du först ange StartInfo egenskapsinformation för den här Process instansen, eftersom den informationen används för att fastställa vilken processresurs som ska startas.
De andra överlagringarna av Start metoden är static medlemmar. Du behöver inte skapa en instans av komponenten Process innan du anropar dessa överlagringar av metoden. I stället kan du anropa StartProcess själva klassen och en ny Process komponent skapas om processen startades.
null Eller returneras om en process återanvänds. Processresursen associeras automatiskt med den nya Process komponenten som returneras av Start metoden.
Medlemmar i StartInfo kan användas för att duplicera funktionerna i dialogrutan Run i menyn Windows Start. Allt som kan skrivas in i en kommandorad kan startas genom att ange lämpliga värden i egenskapen StartInfo . Den enda StartInfo egenskap som måste anges är egenskapen FileName . Egenskapen FileName behöver inte vara en körbar fil. Det kan vara av valfri filtyp som tillägget har associerats med ett program som är installerat på systemet. Egenskapen FileName kan till exempel ha ett .txt tillägg om du har associerade textfiler med ett redigeringsprogram, till exempel Anteckningar, eller om det kan ha ett .doc tillägg om du har associerat .doc filer med ett ordbearbetningsverktyg, till exempel Microsoft Word.
På kommandoraden kan du ange åtgärder som ska utföras för vissa typer av filer. Du kan till exempel skriva ut dokument eller redigera textfiler. Ange dessa åtgärder med hjälp Verb av egenskapens StartInfo medlem. För andra typer av filer kan du ange kommandoradsargument när du startar filen från Run dialogrutan. Du kan till exempel skicka en URL som ett argument om du anger webbläsaren som FileName. Dessa argument kan anges i egenskapens StartInfoArguments medlem.
Om du har en sökvägsvariabel deklarerad i systemet med citattecken måste du fullständigt kvalificera den sökvägen när du startar en process som finns på den platsen. Annars hittar systemet inte sökvägen. Om det till exempel c:\mypath inte finns i sökvägen och du lägger till den med citattecken: path = %path%;"c:\mypath"måste du helt kvalificera alla processer när c:\mypath du startar den.
Note
ASP.NET webbsidan och serverkontrollkoden körs i kontexten för ASP.NET arbetsprocess på webbservern. Om du använder metoden Start i en ASP.NET webbsida eller serverkontroll körs den nya processen på webbservern med begränsad behörighet. Processen startar inte i samma kontext som klientwebbläsaren och har inte åtkomst till användarskrivbordet.
När du använder Start för att starta en process kan du behöva stänga den eller så riskerar du att förlora systemresurser. Stäng processer med eller CloseMainWindowKill. Du kan kontrollera om en process redan har stängts med hjälp av dess HasExited egenskap.
Här krävs en anteckning om lägenhetstillstånd i hanterade trådar. När UseShellExecute finns true på processkomponentens StartInfo egenskap kontrollerar du att du har angett en trådmodell i ditt program genom att ange attributet [STAThread] för main() metoden. Annars kan en hanterad tråd vara i ett unknown tillstånd eller placeras i tillståndet, varav den senare står i MTA konflikt med UseShellExecute att vara true. Vissa metoder kräver att lägenhetstillståndet inte är unknown. Om tillståndet inte uttryckligen anges, när programmet påträffar en sådan metod, är standardvärdet MTA, och när det har angetts kan lägenhetstillståndet inte ändras. Gör dock MTA att ett undantag utlöses när operativsystemets gränssnitt hanterar tråden.
Se även
Gäller för
Start(ProcessStartInfo)
Startar den processresurs som anges av parametern som innehåller processstartinformation (till exempel filnamnet på processen som ska startas) och associerar resursen med en ny Process komponent.
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
Parametrar
- startInfo
- ProcessStartInfo
Som ProcessStartInfo innehåller den information som används för att starta processen, inklusive filnamnet och eventuella kommandoradsargument.
Returer
En ny Process som är associerad med processresursen eller null om ingen processresurs har startats. Observera att en ny process som startas tillsammans med instanser av samma process som redan körs kommer att vara oberoende av de andra. Dessutom kan Start returnera en icke-null-process med dess HasExited egenskap redan inställd på true. I det här fallet kan den startade processen ha aktiverat en befintlig instans av sig själv och sedan avslutats.
Undantag
Inget filnamn angavs i startInfo parameterns FileName egenskap.
-eller-
Egenskapen UseShellExecute för parametern startInfo är true och RedirectStandardInputegenskapen , RedirectStandardOutputeller RedirectStandardError är också true.
-eller-
Egenskapen UseShellExecute för parametern startInfo är true och egenskapen UserName är inte null eller tom eller så Password är egenskapen inte null.
Parametern startInfo är null.
Processobjektet har redan tagits bort.
Ett fel uppstod när den associerade filen skulle öppnas.
-eller-
Det gick inte att hitta filen som anges i startInfo parameterns FileName egenskap.
-eller-
Summan av längden på argumenten och längden på den fullständiga sökvägen till processen överskrider 2080. Felmeddelandet som är associerat med det här undantaget kan vara något av följande: "Dataområdet som skickas till ett systemanrop är för litet." eller "Åtkomst nekas".
Metoden stöds inte på operativsystem utan gränssnittsstöd, till exempel Nano Server (endast .NET Core).
Exempel
I följande exempel skapas först en instans av Internet Explorer och innehållet i mappen Favoriter visas i webbläsaren. Den startar sedan några andra instanser av Internet Explorer och visar vissa specifika sidor eller webbplatser. Slutligen börjar det Internet Explorer med fönstret minimeras när du navigerar till en specifik plats.
Ytterligare exempel på andra användningsområden för den här metoden finns i klassens enskilda egenskaper ProcessStartInfo .
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
Kommentarer
Använd den här överlagringen för att starta en processresurs genom att ange en ProcessStartInfo instans. Överlagringen associerar resursen med ett nytt Process objekt.
Important
Det är en säkerhetsrisk att anropa den här metoden med data som inte är betrodda. Anropa endast den här metoden med betrodda data. För mer information, se Verifiera alla indata.
Note
Om adressen till den körbara fil som ska startas är en URL startas inte processen och null returneras.
Med den här överlagringen kan du starta en process utan att först skapa en ny Process instans. Att använda den här överlagringen med en ProcessStartInfo parameter är ett alternativ till de explicita stegen för att skapa en ny Process instans, ange dess StartInfo egenskaper och anropa Start för instansen Process .
Med en ProcessStartInfo instans som parameter kan du anropa Start med mest kontroll över vad som skickas till anropet för att starta processen. Om du bara behöver skicka ett filnamn eller ett filnamn och argument är det inte nödvändigt att skapa en ny ProcessStartInfo instans, även om det är ett alternativ. Den enda Process.StartInfo egenskap som måste anges är egenskapen FileName . Egenskapen FileName behöver inte representera en körbar fil. Det kan vara av valfri filtyp som tillägget har associerats med ett program som är installerat på systemet. Egenskapen FileName kan till exempel ha ett .txt tillägg om du har associerade textfiler med ett redigeringsprogram, till exempel Anteckningar, eller om det kan ha ett .doc tillägg om du har associerat .doc filer med ett ordbearbetningsverktyg, till exempel Microsoft Word.
Du kan starta ett ClickOnce-program genom att ange platsen (till exempel en webbadress) som du ursprungligen installerade programmet från. Starta inte ett ClickOnce-program genom att ange dess installerade plats på hårddisken.
Om instansens ProcessStartInfo.UserNameStartInfo egenskaper och ProcessStartInfo.Password anges anropas den ohanterade CreateProcessWithLogonW funktionen, vilket startar processen i ett nytt fönster även om ProcessStartInfo.CreateNoWindow egenskapsvärdet är true eller egenskapsvärdet ProcessStartInfo.WindowStyle är ProcessWindowStyle.Hidden. Om egenskapen ProcessStartInfo.Domain är nullmåste egenskapen ProcessStartInfo.UserName vara i UPN-format, användaren@DNS_domain_name.
Till skillnad från andra överlagringar är överbelastningen av Start som inte har några parametrar inte medlem static . Använd överbelastningen när du redan har skapat en Process instans och angiven startinformation (inklusive filnamnet) och du vill starta en processresurs och associera den med den befintliga Process instansen. Använd en av överlagringarna static när du vill skapa en ny Process komponent i stället för att starta en process för en befintlig komponent. Både den här överlagringen och överlagringen som inte har några parametrar gör att du kan ange startinformationen för processresursen med hjälp av en ProcessStartInfo instans.
Om du har en sökvägsvariabel deklarerad i systemet med citattecken måste du fullständigt kvalificera den sökvägen när du startar en process som finns på den platsen. Annars hittar systemet inte sökvägen. Om det till exempel c:\mypath inte finns i sökvägen och du lägger till den med citattecken: path = %path%;"c:\mypath"måste du helt kvalificera alla processer när c:\mypath du startar den.
Note
ASP.NET webbsidan och serverkontrollkoden körs i kontexten för ASP.NET arbetsprocess på webbservern. Om du använder metoden Start i en ASP.NET webbsida eller serverkontroll körs den nya processen på webbservern med begränsad behörighet. Processen startar inte i samma kontext som klientwebbläsaren och har inte åtkomst till användarskrivbordet.
När du använder Start för att starta en process kan du behöva stänga den eller så riskerar du att förlora systemresurser. Stäng processer med eller CloseMainWindowKill. Du kan kontrollera om en process redan har stängts med hjälp av dess HasExited egenskap.
Här krävs en anteckning om lägenhetstillstånd i hanterade trådar. När UseShellExecute är true på parametern startInfo kontrollerar du att du har angett en trådmodell i ditt program genom att ange attributet [STAThread] för main() metoden. Annars kan en hanterad tråd vara i ett unknown tillstånd eller placeras i tillståndet, varav den senare står i MTA konflikt med UseShellExecute att vara true. Vissa metoder kräver att lägenhetstillståndet inte är unknown. Om tillståndet inte uttryckligen anges, när programmet påträffar en sådan metod, är standardvärdet MTA, och när det har angetts kan lägenhetstillståndet inte ändras. Gör dock MTA att ett undantag utlöses när operativsystemets gränssnitt hanterar tråden.
Se även
Gäller för
Start(String)
Startar en processresurs genom att ange namnet på ett dokument eller en programfil och associerar resursen med en ny Process komponent.
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
Parametrar
- fileName
- String
Namnet på ett dokument eller en programfil som ska köras i processen.
Returer
En ny Process som är associerad med processresursen eller null om ingen processresurs har startats. Observera att en ny process som startas tillsammans med instanser av samma process som redan körs kommer att vara oberoende av de andra. Dessutom kan Start returnera en icke-null-process med dess HasExited egenskap redan inställd på true. I det här fallet kan den startade processen ha aktiverat en befintlig instans av sig själv och sedan avslutats.
Undantag
Ett fel uppstod när den associerade filen skulle öppnas.
-eller-
Det gick inte att hitta filen som fileName angavs i den.
Processobjektet har redan tagits bort.
PATH-miljövariabeln har en sträng som innehåller citattecken.
Exempel
I följande exempel skapas först en instans av Internet Explorer och innehållet i mappen Favoriter visas i webbläsaren. Den startar sedan några andra instanser av Internet Explorer och visar vissa specifika sidor eller webbplatser. Slutligen börjar det Internet Explorer med fönstret minimeras när du navigerar till en specifik plats.
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
Kommentarer
Använd den här överlagringen för att starta en processresurs genom att ange dess filnamn. Överlagringen associerar resursen med ett nytt Process objekt.
Important
Det är en säkerhetsrisk att anropa den här metoden med data som inte är betrodda. Anropa endast den här metoden med betrodda data. För mer information, se Verifiera alla indata.
Note
Om adressen till den körbara fil som ska startas är en URL startas inte processen och null returneras.
Med den här överlagringen kan du starta en process utan att först skapa en ny Process instans. Överlagringen är ett alternativ till de explicita stegen för att skapa en ny Process instans, ange FileName medlemmen i StartInfo egenskapen och anropa Start för instansen Process .
Du kan starta ett ClickOnce-program genom att ange parametern fileName till den plats (till exempel en webbadress) som du ursprungligen installerade programmet från. Starta inte ett ClickOnce-program genom att ange dess installerade plats på hårddisken.
Att starta en process genom att ange filnamnet liknar att skriva informationen i dialogrutan Run i menyn Windows Start. Därför behöver filnamnet inte representera en körbar fil. Det kan vara av valfri filtyp som tillägget har associerats med ett program som är installerat på systemet. Filnamnet kan till exempel ha ett .txt filnamnstillägg om du har associerade textfiler med ett redigeringsprogram, till exempel Anteckningar, eller om det kan ha en .doc om du har associerat .doc filer med ett ordbearbetningsverktyg, till exempel Microsoft Word. På samma sätt som Run dialogrutan kan acceptera ett körbart filnamn med eller utan tillägget .exe är .exe-tillägget valfritt i parametern fileName . Du kan till exempel ange parametern fileName till antingen "Notepad.exe" eller "Anteckningar".
Den här överlagringen tillåter inte kommandoradsargument för processen. Om du behöver ange ett eller flera kommandoradsargument för processen använder du överlagringarna Process.Start(ProcessStartInfo) eller Process.Start(String, String) .
Till skillnad från andra överlagringar är överbelastningen av Start som inte har några parametrar inte medlem static . Använd överbelastningen när du redan har skapat en Process instans och angiven startinformation (inklusive filnamnet) och du vill starta en processresurs och associera den med den befintliga Process instansen. Använd en av överlagringarna static när du vill skapa en ny Process komponent i stället för att starta en process för en befintlig komponent. Både den här överlagringen och överlagringen som inte har några parametrar gör att du kan ange filnamnet för processresursen som ska startas.
Om du har en sökvägsvariabel deklarerad i systemet med citattecken måste du fullständigt kvalificera den sökvägen när du startar en process som finns på den platsen. Annars hittar systemet inte sökvägen. Om det till exempel c:\mypath inte finns i sökvägen och du lägger till den med citattecken: path = %path%;"c:\mypath"måste du helt kvalificera alla processer när c:\mypath du startar den.
Note
ASP.NET webbsidan och serverkontrollkoden körs i kontexten för ASP.NET arbetsprocess på webbservern. Om du använder metoden Start i en ASP.NET webbsida eller serverkontroll körs den nya processen på webbservern med begränsad behörighet. Processen startar inte i samma kontext som klientwebbläsaren och har inte åtkomst till användarskrivbordet.
När du använder Start för att starta en process kan du behöva stänga den eller så riskerar du att förlora systemresurser. Stäng processer med eller CloseMainWindowKill. Du kan kontrollera om en process redan har stängts med hjälp av dess HasExited egenskap.
Här krävs en anteckning om lägenhetstillstånd i hanterade trådar. När UseShellExecute finns true på processkomponentens StartInfo egenskap kontrollerar du att du har angett en trådmodell i ditt program genom att ange attributet [STAThread] för main() metoden. Annars kan en hanterad tråd vara i ett unknown tillstånd eller placeras i tillståndet, varav den senare står i MTA konflikt med UseShellExecute att vara true. Vissa metoder kräver att lägenhetstillståndet inte är unknown. Om tillståndet inte uttryckligen anges, när programmet påträffar en sådan metod, är standardvärdet MTA, och när det har angetts kan lägenhetstillståndet inte ändras. Gör dock MTA att ett undantag utlöses när operativsystemets gränssnitt hanterar tråden.
Se även
Gäller för
Start(String, String)
Startar en processresurs genom att ange namnet på ett program och en uppsättning kommandoradsargument och associerar resursen med en ny Process komponent.
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
Parametrar
- fileName
- String
Namnet på en programfil som ska köras i processen.
- arguments
- String
Kommandoradsargument som ska skickas när processen startas.
Returer
En ny Process som är associerad med processresursen eller null om ingen processresurs har startats. Observera att en ny process som startas tillsammans med instanser av samma process som redan körs kommer att vara oberoende av de andra. Dessutom kan Start returnera en icke-null-process med dess HasExited egenskap redan inställd på true. I det här fallet kan den startade processen ha aktiverat en befintlig instans av sig själv och sedan avslutats.
Undantag
Parametern fileName eller arguments är null.
Ett fel uppstod när den associerade filen skulle öppnas.
-eller-
Det gick inte att hitta filen som fileName angavs i den.
-eller-
Summan av längden på argumenten och längden på den fullständiga sökvägen till processen överskrider 2080. Felmeddelandet som är associerat med det här undantaget kan vara något av följande: "Dataområdet som skickas till ett systemanrop är för litet." eller "Åtkomst nekas".
Processobjektet har redan tagits bort.
PATH-miljövariabeln har en sträng som innehåller citattecken.
Exempel
I följande exempel skapas först en instans av Internet Explorer och innehållet i mappen Favoriter visas i webbläsaren. Den startar sedan några andra instanser av Internet Explorer och visar vissa specifika sidor eller webbplatser. Slutligen börjar det Internet Explorer med fönstret minimeras när du navigerar till en specifik plats.
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
Kommentarer
Använd den här överlagringen för att starta en processresurs genom att ange dess filnamn och kommandoradsargument. Överlagringen associerar resursen med ett nytt Process objekt.
Important
Det är en säkerhetsrisk att anropa den här metoden med data som inte är betrodda. Anropa endast den här metoden med betrodda data. För mer information, se Verifiera alla indata.
Note
Om adressen till den körbara fil som ska startas är en URL startas inte processen och null returneras.
Med den här överlagringen kan du starta en process utan att först skapa en ny Process instans. Överlagringen är ett alternativ till de explicita stegen för att skapa en ny Process instans, ange ArgumentsFileName och medlemmar i StartInfo egenskapen och anropa Start för instansenProcess.
Att starta en process genom att ange dess filnamn och argument liknar att skriva filnamnet och kommandoradsargumenten i dialogrutan Run i menyn Windows Start. Därför behöver filnamnet inte representera en körbar fil. Det kan vara av valfri filtyp som tillägget har associerats med ett program som är installerat på systemet. Filnamnet kan till exempel ha ett .txt filnamnstillägg om du har associerade textfiler med ett redigeringsprogram, till exempel Anteckningar, eller om det kan ha en .doc om du har associerat .doc filer med ett ordbearbetningsverktyg, till exempel Microsoft Word. På samma sätt som Run dialogrutan kan acceptera ett körbart filnamn med eller utan tillägget .exe är .exe-tillägget valfritt i parametern fileName . Du kan till exempel ange parametern fileName till antingen "Notepad.exe" eller "Anteckningar". Om parametern fileName representerar en körbar fil kan parametern arguments representera en fil att agera på, till exempel textfilen i Notepad.exe myfile.txt. Om parametern fileName representerar en kommandofil (.cmd) måste parametern arguments innehålla antingen argumentet "/c" eller "/k" för att ange om kommandofönstret avslutas eller förblir efter slutförande.
Till skillnad från andra överlagringar är överbelastningen av Start som inte har några parametrar inte medlem static . Använd överbelastningen när du redan har skapat en Process instans och angiven startinformation (inklusive filnamnet) och du vill starta en processresurs och associera den med den befintliga Process instansen. Använd en av överlagringarna static när du vill skapa en ny Process komponent i stället för att starta en process för en befintlig komponent. Både den här överlagringen och överlagringen som inte har några parametrar gör att du kan ange filnamnet för processresursen för att starta och kommandoradsargument som ska skickas.
Om du har en sökvägsvariabel deklarerad i systemet med citattecken måste du fullständigt kvalificera den sökvägen när du startar en process som finns på den platsen. Annars hittar systemet inte sökvägen. Om det till exempel c:\mypath inte finns i sökvägen och du lägger till den med citattecken: path = %path%;"c:\mypath"måste du helt kvalificera alla processer när c:\mypath du startar den.
Note
ASP.NET webbsidan och serverkontrollkoden körs i kontexten för ASP.NET arbetsprocess på webbservern. Om du använder metoden Start i en ASP.NET webbsida eller serverkontroll körs den nya processen på webbservern med begränsad behörighet. Processen startar inte i samma kontext som klientwebbläsaren och har inte åtkomst till användarskrivbordet.
När du använder Start för att starta en process kan du behöva stänga den eller så riskerar du att förlora systemresurser. Stäng processer med eller CloseMainWindowKill. Du kan kontrollera om en process redan har stängts med hjälp av dess HasExited egenskap.
Här krävs en anteckning om lägenhetstillstånd i hanterade trådar. När UseShellExecute finns true på processkomponentens StartInfo egenskap kontrollerar du att du har angett en trådmodell i ditt program genom att ange attributet [STAThread] för main() metoden. Annars kan en hanterad tråd vara i ett unknown tillstånd eller placeras i tillståndet, varav den senare står i MTA konflikt med UseShellExecute att vara true. Vissa metoder kräver att lägenhetstillståndet inte är unknown. Om tillståndet inte uttryckligen anges, när programmet påträffar en sådan metod, är standardvärdet MTA, och när det har angetts kan lägenhetstillståndet inte ändras. Gör dock MTA att ett undantag utlöses när operativsystemets gränssnitt hanterar tråden.
Se även
Gäller för
Start(String, String, SecureString, String)
Viktigt!
Detta API uppfyller inte CLS.
Startar en processresurs genom att ange namnet på ett program, ett användarnamn, ett lösenord och en domän och associerar resursen med en ny Process komponent.
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
Parametrar
- fileName
- String
Namnet på en programfil som ska köras i processen.
- userName
- String
Användarnamnet som ska användas när processen startas.
- password
- SecureString
En SecureString som innehåller lösenordet som ska användas när processen startas.
- domain
- String
Domänen som ska användas när processen startas.
Returer
En ny Process som är associerad med processresursen eller null om ingen processresurs har startats. Observera att en ny process som startas tillsammans med instanser av samma process som redan körs kommer att vara oberoende av de andra. Dessutom kan Start returnera en icke-null-process med dess HasExited egenskap redan inställd på true. I det här fallet kan den startade processen ha aktiverat en befintlig instans av sig själv och sedan avslutats.
- Attribut
Undantag
Inget filnamn har angetts.
Det uppstod ett fel när den associerade filen skulle öppnas.
-eller-
Det gick inte att hitta filen som fileName angavs i den.
Processobjektet har redan tagits bort.
Den här medlemmen stöds inte i Linux eller macOS (endast .NET Core).
Exempel
I följande kodexempel visas användningen av den här överbelastningen för att starta en körbar fil och visar även hur en Win32Exception när ett försök görs att starta ett program som är associerat med en fil som inte kan köras.
// 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
Kommentarer
Använd den här överlagringen för att skapa en ny process och dess primära tråd genom att ange dess filnamn, användarnamn, lösenord och domän. Den nya processen kör sedan den angivna körbara filen i säkerhetskontexten för de angivna autentiseringsuppgifterna (användare, domän och lösenord).
Important
Det är en säkerhetsrisk att anropa den här metoden med data som inte är betrodda. Anropa endast den här metoden med betrodda data. För mer information, se Verifiera alla indata.
Note
När den körbara filen finns på en fjärrenhet måste du identifiera nätverksresursen med hjälp av en enhetlig resursidentifierare (URI), inte en länkad enhetsbeteckning.
Note
Om adressen till den körbara fil som ska startas är en URL startas inte processen och null returneras.
Med den här överlagringen kan du starta en process utan att först skapa en ny Process instans. Överlagringen är ett alternativ till de explicita stegen för att skapa en ny Process instans, ange FileNameegenskaperna StartInfo , UserName, Passwordoch Domain för egenskapen och anropa Start för instansenProcess.
På samma sätt som dialogrutan Kör kan acceptera ett körbart filnamn med eller utan tillägget .exe är .exe-tillägget valfritt i parametern fileName . Du kan till exempel ange parametern fileName till antingen "Notepad.exe" eller "Anteckningar". Om parametern fileName representerar en körbar fil kan parametern arguments representera en fil att agera på, till exempel textfilen i Notepad.exe myfile.txt.
Note
Filnamnet måste representera en körbar fil i de Start överlagringar som har userNameparametrarna , passwordoch domain .
När du använder Start för att starta en process kan du behöva stänga den eller så riskerar du att förlora systemresurser. Stäng processer med eller CloseMainWindowKill. Du kan kontrollera om en process redan har stängts med hjälp av dess HasExited egenskap.
Gäller för
Start(String, String, String, SecureString, String)
Viktigt!
Detta API uppfyller inte CLS.
Startar en processresurs genom att ange namnet på ett program, en uppsättning kommandoradsargument, ett användarnamn, ett lösenord och en domän och associerar resursen med en ny Process komponent.
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
Parametrar
- fileName
- String
Namnet på en programfil som ska köras i processen.
- arguments
- String
Kommandoradsargument som ska skickas när processen startas.
- userName
- String
Användarnamnet som ska användas när processen startas.
- password
- SecureString
En SecureString som innehåller lösenordet som ska användas när processen startas.
- domain
- String
Domänen som ska användas när processen startas.
Returer
En ny Process som är associerad med processresursen eller null om ingen processresurs har startats. Observera att en ny process som startas tillsammans med instanser av samma process som redan körs kommer att vara oberoende av de andra. Dessutom kan Start returnera en icke-null-process med dess HasExited egenskap redan inställd på true. I det här fallet kan den startade processen ha aktiverat en befintlig instans av sig själv och sedan avslutats.
- Attribut
Undantag
Inget filnamn har angetts.
Ett fel uppstod när den associerade filen skulle öppnas.
-eller-
Det gick inte att hitta filen som fileName angavs i den.
-eller-
Summan av längden på argumenten och längden på den fullständiga sökvägen till den associerade filen överskrider 2080. Felmeddelandet som är associerat med det här undantaget kan vara något av följande: "Dataområdet som skickas till ett systemanrop är för litet." eller "Åtkomst nekas".
Processobjektet har redan tagits bort.
Den här medlemmen stöds inte i Linux eller macOS (endast .NET Core).
Kommentarer
Använd den här överlagringen för att skapa en ny process och dess primära tråd genom att ange dess filnamn, kommandoradsargument, användarnamn, lösenord och domän. Den nya processen kör sedan den angivna körbara filen i säkerhetskontexten för de angivna autentiseringsuppgifterna (användare, domän och lösenord).
Important
Det är en säkerhetsrisk att anropa den här metoden med data som inte är betrodda. Anropa endast den här metoden med betrodda data. För mer information, se Verifiera alla indata.
Note
När den körbara filen finns på en fjärrenhet måste du identifiera nätverksresursen med hjälp av en enhetlig resursidentifierare (URI), inte en länkad enhetsbeteckning.
Note
Om adressen till den körbara fil som ska startas är en URL startas inte processen och null returneras.
Med den här överlagringen kan du starta en process utan att först skapa en ny Process instans. Överlagringen är ett alternativ till de explicita stegen för att skapa en ny Process instans, ange FileNameegenskaperna StartInfo , Arguments, UserName, Passwordoch Domain för egenskapen och anropa Start för instansenProcess.
På samma sätt som dialogrutan Kör kan acceptera ett körbart filnamn med eller utan tillägget .exe är .exe-tillägget valfritt i parametern fileName . Du kan till exempel ange parametern fileName till antingen "Notepad.exe" eller "Anteckningar". Om parametern fileName representerar en körbar fil kan parametern arguments representera en fil att agera på, till exempel textfilen i Notepad.exe myfile.txt.
Note
Filnamnet måste representera en körbar fil i de Start överlagringar som har userNameparametrarna , passwordoch domain .
När du använder Start för att starta en process kan du behöva stänga den eller så riskerar du att förlora systemresurser. Stäng processer med eller CloseMainWindowKill. Du kan kontrollera om en process redan har stängts med hjälp av dess HasExited egenskap.