Process.Start 메서드

정의

프로세스 리소스를 시작한 후 Process 구성 요소에 연결합니다.Starts a process resource and associates it with a Process component.

오버로드

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

애플리케이션 이름, 명령줄 인수 집합, 사용자 이름, 암호 및 도메인을 지정하여 프로세스 리소스를 시작하고 해당 리소스를 새 Process 구성 요소에 연결합니다.Starts a process resource by specifying the name of an application, a set of command-line arguments, a user name, a password, and a domain and associates the resource with a new Process component.

Start(String, String, SecureString, String)

애플리케이션 이름, 사용자 이름, 암호 및 도메인을 지정하여 프로세스 리소스를 시작하고 해당 리소스를 새 Process 구성 요소에 연결합니다.Starts a process resource by specifying the name of an application, a user name, a password, and a domain and associates the resource with a new Process component.

Start(String, String)

애플리케이션 이름 및 명령줄 인수 집합을 지정하여 프로세스 리소스를 시작하고 해당 리소스를 새 Process 구성 요소에 연결합니다.Starts a process resource by specifying the name of an application and a set of command-line arguments, and associates the resource with a new Process component.

Start()

StartInfo 구성 요소의 Process 속성으로 지정된 프로세스 리소스를 시작하거나 다시 사용하여 구성 요소에 연결합니다.Starts (or reuses) the process resource that is specified by the StartInfo property of this Process component and associates it with the component.

Start(String)

문서 또는 애플리케이션 파일 이름을 지정하여 프로세스 리소스를 시작하고 해당 리소스를 새 Process 구성 요소에 연결합니다.Starts a process resource by specifying the name of a document or application file and associates the resource with a new Process component.

Start(ProcessStartInfo)

시작할 프로세스의 파일 이름 같은 프로세스 시작 정보가 포함된 매개 변수에 의해 지정된 프로세스 리소스를 시작하고 해당 리소스를 새 Process 구성 요소에 연결합니다.Starts the process resource that is specified by the parameter containing process start information (for example, the file name of the process to start) and associates the resource with a new Process component.

Start(String, IEnumerable<String>)

애플리케이션 이름 및 명령줄 인수 집합을 지정하여 프로세스 리소스를 시작합니다.Starts a process resource by specifying the name of an application and a set of command line arguments.

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

중요

이 API는 CLS 규격이 아닙니다.

애플리케이션 이름, 명령줄 인수 집합, 사용자 이름, 암호 및 도메인을 지정하여 프로세스 리소스를 시작하고 해당 리소스를 새 Process 구성 요소에 연결합니다.Starts a process resource by specifying the name of an application, a set of command-line arguments, a user name, a password, and a domain and associates the resource with a new Process component.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ arguments, System::String ^ userName, System::Security::SecureString ^ password, System::String ^ domain);
[System.CLSCompliant(false)]
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
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);
public static System.Diagnostics.Process Start (string fileName, string arguments, string userName, System.Security.SecureString password, string domain);
[<System.CLSCompliant(false)>]
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member Start : string * string * string * System.Security.SecureString * string -> System.Diagnostics.Process
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

매개 변수

fileName
String

프로세스에서 실행될 애플리케이션 파일 이름입니다.The name of an application file to run in the process.

arguments
String

프로세스를 시작할 때 전달할 명령줄 인수입니다.Command-line arguments to pass when starting the process.

userName
String

프로세스를 시작할 때 사용할 사용자 이름입니다.The user name to use when starting the process.

password
SecureString

프로세스를 시작할 때 사용할 암호가 포함된 SecureString입니다.A SecureString that contains the password to use when starting the process.

domain
String

프로세스를 시작할 때 사용할 도메인입니다.The domain to use when starting the process.

반환

Process

프로세스 리소스와 연결되거나 시작된 프로세스가 없는 경우 null에 연결되는 새 Process입니다.A new Process that is associated with the process resource, or null if no process resource is started. 같은 프로세스에서 이미 실행 중인 인스턴스와 함께 시작되는 새 프로세스는 서로 독립적인 관계입니다.Note that a new process that's started alongside already running instances of the same process will be independent from the others. 뿐만 아니라 시작 시 HasExited 속성이 이미 true로 설정되어 있는 null이 아닌 프로세스가 반환될 수 있습니다.In addition, Start may return a non-null Process with its HasExited property already set to true. 이 경우 시작된 프로세스가 자체의 기존 인스턴스를 활성화한 후 종료될 수 있습니다.In this case, the started process may have activated an existing instance of itself and then exited.

특성

예외

파일 이름을 지정하지 않았습니다.No file name was specified.

연결된 파일을 열 때 오류가 발생합니다.An error occurred when opening the associated file.

또는-or-

fileName에서 지정된 파일을 찾을 수 없습니다.The file specified in the fileName could not be found.

또는-or- 인수의 길이와 연결된 파일의 전체 경로 길이를 합하면 2080을 초과합니다.The sum of the length of the arguments and the length of the full path to the associated file exceeds 2080. 이 예외와 관련된 오류 메시지는 다음 중 하나일 수 있습니다. "시스템 호출에 전달된 데이터 영역이 너무 작습니다."The error message associated with this exception can be one of the following: "The data area passed to a system call is too small." 또는 “액세스가 거부되었습니다.”or "Access is denied."

프로세스 개체가 이미 삭제되었습니다.The process object has already been disposed.

이 메서드는 Linux 또는 macOS에서 지원되지 않습니다(.NET Core에만 해당).This member is not supported on Linux or macOS (.NET Core only).

설명

이 오버 로드를 사용 하 여 파일 이름, 명령줄 인수, 사용자 이름, 암호 및 도메인을 지정 하 여 새 프로세스 및 해당 기본 스레드를 만듭니다.Use this overload to create a new process and its primary thread by specifying its file name, command-line arguments, user name, password, and domain. 그런 다음 새 프로세스는 지정 된 자격 증명 (사용자, 도메인 및 암호)의 보안 컨텍스트에서 지정 된 실행 파일을 실행 합니다.The new process then runs the specified executable file in the security context of the specified credentials (user, domain, and password).

참고

실행 파일이 원격 드라이브에 있는 경우 연결 된 드라이브 문자가 아닌 URI (uniform resource identifier)를 사용 하 여 네트워크 공유를 식별 해야 합니다.When the executable file is located on a remote drive, you must identify the network share by using a uniform resource identifier (URI), not a linked drive letter.

참고

시작할 실행 파일의 주소가 URL 이면 프로세스가 시작 되지 않고 null 반환 됩니다.If the address of the executable file to start is a URL, the process is not started and null is returned.

이 오버 로드를 사용 하면 먼저 새 인스턴스를 만들지 않고 프로세스를 시작할 수 있습니다 Process .This overload lets you start a process without first creating a new Process instance. 오버 로드는 새 인스턴스를 만들고, 속성의,,, Process 및 속성을 설정 FileNameArguments UserName 고, Password Domain StartInfo Start 인스턴스에 대해를 호출 Process 하는 명시적 단계에 대 한 대안입니다.The overload is an alternative to the explicit steps of creating a new Process instance, setting the FileName, Arguments, UserName, Password, and Domain properties of the StartInfo property, and calling Start for the Process instance.

마찬가지로 실행 대화 상자에서 .exe 확장명을 사용 하거나 사용 하지 않고 실행 파일 이름을 사용할 수 있는 것과 동일한 방식으로 .exe 확장명은 매개 변수에서 선택 사항입니다. fileNameSimilarly, in the same way that the Run dialog box can accept an executable file name with or without the .exe extension, the .exe extension is optional in the fileName parameter. 예를 들어 fileName 매개 변수를 "Notepad.exe" 또는 "Notepad"로 설정할 수 있습니다.For example, you can set the fileName parameter to either "Notepad.exe" or "Notepad". fileName매개 변수가 실행 파일을 나타내는 경우 arguments 매개 변수는의 텍스트 파일과 같이 작업할 파일을 나타낼 수 있습니다 Notepad.exe myfile.txt .If the fileName parameter represents an executable file, the arguments parameter might represent a file to act upon, such as the text file in Notepad.exe myfile.txt.

참고

파일 이름은 Start 오버 로드에서 userName , passworddomain 매개 변수가 있는 실행 파일을 나타내야 합니다.The file name must represent an executable file in the Start overloads that have userName, password, and domain parameters.

를 사용 하 여 Start 프로세스를 시작할 때마다 해당 프로세스를 닫거나 시스템 리소스가 손실 될 위험이 있습니다.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. 또는을 사용 하 여 프로세스 CloseMainWindow 를 닫습니다 Kill .Close processes using CloseMainWindow or Kill. 해당 속성을 사용 하 여 프로세스가 이미 닫혀 있는지 확인할 수 있습니다 HasExited .You can check whether a process has already been closed by using its HasExited property.

적용 대상

Start(String, String, SecureString, String)

중요

이 API는 CLS 규격이 아닙니다.

애플리케이션 이름, 사용자 이름, 암호 및 도메인을 지정하여 프로세스 리소스를 시작하고 해당 리소스를 새 Process 구성 요소에 연결합니다.Starts a process resource by specifying the name of an application, a user name, a password, and a domain and associates the resource with a new Process component.

public:
 static System::Diagnostics::Process ^ Start(System::String ^ fileName, System::String ^ userName, System::Security::SecureString ^ password, System::String ^ domain);
[System.CLSCompliant(false)]
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
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);
public static System.Diagnostics.Process Start (string fileName, string userName, System.Security.SecureString password, string domain);
[<System.CLSCompliant(false)>]
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member Start : string * string * System.Security.SecureString * string -> System.Diagnostics.Process
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

매개 변수

fileName
String

프로세스에서 실행될 애플리케이션 파일 이름입니다.The name of an application file to run in the process.

userName
String

프로세스를 시작할 때 사용할 사용자 이름입니다.The user name to use when starting the process.

password
SecureString

프로세스를 시작할 때 사용할 암호가 포함된 SecureString입니다.A SecureString that contains the password to use when starting the process.

domain
String

프로세스를 시작할 때 사용할 도메인입니다.The domain to use when starting the process.

반환

Process

프로세스 리소스와 연결되거나 시작된 프로세스가 없는 경우 null에 연결되는 새 Process입니다.A new Process that is associated with the process resource, or null if no process resource is started. 같은 프로세스에서 이미 실행 중인 인스턴스와 함께 시작되는 새 프로세스는 서로 독립적인 관계입니다.Note that a new process that's started alongside already running instances of the same process will be independent from the others. 뿐만 아니라 시작 시 HasExited 속성이 이미 true로 설정되어 있는 null이 아닌 프로세스가 반환될 수 있습니다.In addition, Start may return a non-null Process with its HasExited property already set to true. 이 경우 시작된 프로세스가 자체의 기존 인스턴스를 활성화한 후 종료될 수 있습니다.In this case, the started process may have activated an existing instance of itself and then exited.

특성

예외

파일 이름을 지정하지 않았습니다.No file name was specified.

연결된 파일을 여는 동안 오류가 발생했습니다.There was an error in opening the associated file.

또는-or-

fileName에서 지정된 파일을 찾을 수 없습니다.The file specified in the fileName could not be found.

프로세스 개체가 이미 삭제되었습니다.The process object has already been disposed.

이 메서드는 Linux 또는 macOS에서 지원되지 않습니다(.NET Core에만 해당).This member is not supported on Linux or macOS (.NET Core only).

예제

다음 코드 예제는 실행 파일을 시작 하려면이 오버 로드의 사용을 보여 줍니다 및 throw 보여 줍니다는 Win32Exception 실행 불가능 한 파일과 연결 된 애플리케이션을 시작 하려고 할 때입니다.The following code example shows the use of this overload to start an executable file and also demonstrates the throwing of a Win32Exception when an attempt is made to start an application associated with a nonexecutable file.

// 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();
        }
    }
}
' 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

설명

이 오버 로드를 사용 하 여 파일 이름, 사용자 이름, 암호 및 도메인을 지정 하 여 새 프로세스 및 해당 기본 스레드를 만듭니다.Use this overload to create a new process and its primary thread by specifying its file name, user name, password, and domain. 그런 다음 새 프로세스는 지정 된 자격 증명 (사용자, 도메인 및 암호)의 보안 컨텍스트에서 지정 된 실행 파일을 실행 합니다.The new process then runs the specified executable file in the security context of the specified credentials (user, domain, and password).

참고

실행 파일이 원격 드라이브에 있는 경우 연결 된 드라이브 문자가 아닌 URI (uniform resource identifier)를 사용 하 여 네트워크 공유를 식별 해야 합니다.When the executable file is located on a remote drive, you must identify the network share by using a uniform resource identifier (URI), not a linked drive letter.

참고

시작할 실행 파일의 주소가 URL 이면 프로세스가 시작 되지 않고 null 반환 됩니다.If the address of the executable file to start is a URL, the process is not started and null is returned.

이 오버 로드를 사용 하면 먼저 새 인스턴스를 만들지 않고 프로세스를 시작할 수 있습니다 Process .This overload lets you start a process without first creating a new Process instance. 오버 로드는 새 인스턴스를 만들고 Process , 속성의,, 및 속성을 설정 하 FileName UserName 고, Password Domain StartInfo Start 인스턴스에 대해를 호출 Process 하는 명시적 단계에 대 한 대안입니다.The overload is an alternative to the explicit steps of creating a new Process instance, setting the FileName, UserName, Password, and Domain properties of the StartInfo property, and calling Start for the Process instance.

마찬가지로 실행 대화 상자에서 .exe 확장명을 사용 하거나 사용 하지 않고 실행 파일 이름을 사용할 수 있는 것과 동일한 방식으로 .exe 확장명은 매개 변수에서 선택 사항입니다. fileNameSimilarly, in the same way that the Run dialog box can accept an executable file name with or without the .exe extension, the .exe extension is optional in the fileName parameter. 예를 들어 fileName 매개 변수를 "Notepad.exe" 또는 "Notepad"로 설정할 수 있습니다.For example, you can set the fileName parameter to either "Notepad.exe" or "Notepad". fileName매개 변수가 실행 파일을 나타내는 경우 arguments 매개 변수는의 텍스트 파일과 같이 작업할 파일을 나타낼 수 있습니다 Notepad.exe myfile.txt .If the fileName parameter represents an executable file, the arguments parameter might represent a file to act upon, such as the text file in Notepad.exe myfile.txt.

참고

파일 이름은 Start 오버 로드에서 userName , passworddomain 매개 변수가 있는 실행 파일을 나타내야 합니다.The file name must represent an executable file in the Start overloads that have userName, password, and domain parameters.

를 사용 하 여 Start 프로세스를 시작할 때마다 해당 프로세스를 닫거나 시스템 리소스가 손실 될 위험이 있습니다.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. 또는을 사용 하 여 프로세스 CloseMainWindow 를 닫습니다 Kill .Close processes using CloseMainWindow or Kill. 해당 속성을 사용 하 여 프로세스가 이미 닫혀 있는지 확인할 수 있습니다 HasExited .You can check whether a process has already been closed by using its HasExited property.

적용 대상

Start(String, String)

애플리케이션 이름 및 명령줄 인수 집합을 지정하여 프로세스 리소스를 시작하고 해당 리소스를 새 Process 구성 요소에 연결합니다.Starts a process resource by specifying the name of an application and a set of command-line arguments, and associates the resource with a new Process component.

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

매개 변수

fileName
String

프로세스에서 실행될 애플리케이션 파일 이름입니다.The name of an application file to run in the process.

arguments
String

프로세스를 시작할 때 전달할 명령줄 인수입니다.Command-line arguments to pass when starting the process.

반환

Process

프로세스 리소스와 연결되거나 시작된 프로세스가 없는 경우 null에 연결되는 새 Process입니다.A new Process that is associated with the process resource, or null if no process resource is started. 같은 프로세스에서 이미 실행 중인 인스턴스와 함께 시작되는 새 프로세스는 서로 독립적인 관계입니다.Note that a new process that's started alongside already running instances of the same process will be independent from the others. 뿐만 아니라 시작 시 HasExited 속성이 이미 true로 설정되어 있는 null이 아닌 프로세스가 반환될 수 있습니다.In addition, Start may return a non-null Process with its HasExited property already set to true. 이 경우 시작된 프로세스가 자체의 기존 인스턴스를 활성화한 후 종료될 수 있습니다.In this case, the started process may have activated an existing instance of itself and then exited.

예외

fileName 또는 arguments 매개 변수가 null인 경우The fileName or arguments parameter is null.

연결된 파일을 열 때 오류가 발생합니다.An error occurred when opening the associated file.

또는-or-

fileName에서 지정된 파일을 찾을 수 없습니다.The file specified in the fileName could not be found.

또는-or- 인수의 길이와 프로세스에 대한 전체 경로 길이를 합하면 2080을 초과합니다.The sum of the length of the arguments and the length of the full path to the process exceeds 2080. 이 예외와 관련된 오류 메시지는 다음 중 하나일 수 있습니다. "시스템 호출에 전달된 데이터 영역이 너무 작습니다."The error message associated with this exception can be one of the following: "The data area passed to a system call is too small." 또는 “액세스가 거부되었습니다.”or "Access is denied."

프로세스 개체가 이미 삭제되었습니다.The process object has already been disposed.

PATH 환경 변수에 따옴표를 포함하는 문자열이 있습니다.The PATH environment variable has a string containing quotes.

예제

다음 예에서는 먼저 Internet Explorer의 인스턴스를 생성 하 고 브라우저에 즐겨찾기 폴더의 내용을 표시 합니다.The following example first spawns an instance of Internet Explorer and displays the contents of the Favorites folder in the browser. 그런 다음 Internet Explorer의 다른 인스턴스를 시작 하 고 특정 페이지 또는 사이트를 표시 합니다.It then starts some other instances of Internet Explorer and displays some specific pages or sites. 마지막으로, 특정 사이트로 이동 하는 동안 창이 최소화 되는 Internet Explorer를 시작 합니다.Finally it starts Internet Explorer with the window being minimized while navigating to a specific site.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

// 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()
{
    // 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");
}

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
    startInfo->WindowStyle = ProcessWindowStyle::Minimized;
    Process::Start(startInfo);
    startInfo->Arguments = "www.northwindtraders.com";
    Process::Start(startInfo);
}

int main()
{
    // Get the path that stores favorite links.
    String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
    OpenApplication(myFavoritesPath);
    OpenWithArguments();
    OpenWithStartInfo();
}
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();
        }
    }
}
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

설명

이 오버 로드를 사용 하 여 파일 이름 및 명령줄 인수를 지정 하 여 프로세스 리소스를 시작 합니다.Use this overload to start a process resource by specifying its file name and command-line arguments. 오버 로드는 리소스를 새 개체와 연결 합니다 Process .The overload associates the resource with a new Process object.

참고

시작할 실행 파일의 주소가 URL 이면 프로세스가 시작 되지 않고 null 반환 됩니다.If the address of the executable file to start is a URL, the process is not started and null is returned.

이 오버 로드를 사용 하면 먼저 새 인스턴스를 만들지 않고 프로세스를 시작할 수 있습니다 Process .This overload lets you start a process without first creating a new Process instance. 오버 로드는 새 인스턴스를 만들고, Process FileName 속성의 및 멤버를 설정 하 Arguments StartInfo 고, Start 인스턴스에 대해를 호출 Process 하는 명시적 단계에 대 한 대안입니다.The overload is an alternative to the explicit steps of creating a new Process instance, setting the FileName and Arguments members of the StartInfo property, and calling Start for the Process instance.

파일 이름 및 인수를 지정 하 여 프로세스를 시작 하는 것은 Run Windows 메뉴의 대화 상자에 파일 이름 및 명령줄 인수를 입력 하는 것과 비슷합니다 Start .Starting a process by specifying its file name and arguments is similar to typing the file name and command-line arguments in the Run dialog box of the Windows Start menu. 따라서 파일 이름은 실행 파일을 나타낼 필요가 없습니다.Therefore, the file name does not need to represent an executable file. 확장에 연결 된 시스템에 설치 된 애플리케이션 파일 형식의 수 있습니다.It can be of any file type for which the extension has been associated with an application installed on the system. 예를 들어 메모장과 같은 편집기와 관련 된 텍스트 파일이 있는 경우 파일 이름에 .txt 확장명을 사용할 수 있습니다. 또는 Microsoft Word와 같은 워드 프로세싱 도구를 사용 하 여 .doc 파일을 연결한 경우에는 .doc를 사용할 수 있습니다.For example the file name can have a .txt extension if you have associated text files with an editor, such as Notepad, or it can have a .doc if you have associated .doc files with a word processing tool, such as Microsoft Word. 마찬가지로, Run 대화 상자에서 .exe 확장명을 사용 하거나 사용 하지 않고 실행 파일 이름을 사용할 수 있는 것과 같은 방식으로 .exe 확장명은 매개 변수에서 선택 사항입니다. fileNameSimilarly, in the same way that the Run dialog box can accept an executable file name with or without the .exe extension, the .exe extension is optional in the fileName parameter. 예를 들어 fileName 매개 변수를 "Notepad.exe" 또는 "Notepad"로 설정할 수 있습니다.For example, you can set the fileName parameter to either "Notepad.exe" or "Notepad". fileName매개 변수가 실행 파일을 나타내는 경우 arguments 매개 변수는의 텍스트 파일과 같이 작업할 파일을 나타낼 수 있습니다 Notepad.exe myfile.txt .If the fileName parameter represents an executable file, the arguments parameter might represent a file to act upon, such as the text file in Notepad.exe myfile.txt. fileName매개 변수가 명령 (.cmd) 파일을 나타내는 경우에는 arguments 매개 변수에 " /c " 또는 "" 인수를 포함 /k 하 여 완료 후에 명령 창이 종료 되거나 남아 있는지 여부를 지정 해야 합니다.If the fileName parameter represents a command (.cmd) file, the arguments parameter must include either a "/c" or "/k" argument to specify whether the command window exits or remains after completion.

다른 오버 로드와 달리 Start 매개 변수를 포함 하지 않는의 오버 로드는 static 멤버가 아닙니다.Unlike the other overloads, the overload of Start that has no parameters is not a static member. 인스턴스를 이미 만들고 Process 지정 된 시작 정보 (파일 이름 포함)를 지정한 다음 프로세스 리소스를 시작 하 여 기존 인스턴스와 연결 하려는 경우이 오버 로드를 사용 Process 합니다.Use that overload when you have already created a Process instance and specified start information (including the file name), and you want to start a process resource and associate it with the existing Process instance. static Process 기존 구성 요소에 대 한 프로세스를 시작 하는 대신 새 구성 요소를 만들려는 경우 오버 로드 중 하나를 사용 합니다.Use one of the static overloads when you want to create a new Process component rather than start a process for an existing component. 이 오버 로드와 매개 변수를 포함 하지 않는 오버 로드를 사용 하면 시작할 프로세스 리소스의 파일 이름과 전달할 명령줄 인수를 지정할 수 있습니다.Both this overload and the overload that has no parameters allow you to specify the file name of the process resource to start and command-line arguments to pass.

따옴표를 사용 하 여 시스템에 경로 변수가 선언 된 경우 해당 위치에 있는 프로세스를 시작할 때 해당 경로를 정규화 해야 합니다.If you have a path variable declared in your system using quotes, you must fully qualify that path when starting any process found in that location. 그렇지 않으면 시스템이 경로를 찾지 못합니다.Otherwise, the system will not find the path. 예를 들어 c:\mypath 가 경로에 없고 따옴표를 사용 하 여 추가 하는 경우를 path = %path%;"c:\mypath" 시작할 때에서 모든 프로세스를 정규화 해야 합니다 c:\mypath .For example, if c:\mypath is not in your path, and you add it using quotation marks: path = %path%;"c:\mypath", you must fully qualify any process in c:\mypath when starting it.

참고

ASP.NET 웹 페이지 및 서버 컨트롤 코드는 웹 서버에서 ASP.NET 작업자 프로세스의 컨텍스트에서 실행 됩니다.ASP.NET Web page and server control code executes in the context of the ASP.NET worker process on the Web server. StartASP.NET 웹 페이지 또는 서버 컨트롤에서 메서드를 사용 하는 경우 새 프로세스는 제한 된 권한으로 웹 서버에서 실행 됩니다.If you use the Start method in an ASP.NET Web page or server control, the new process executes on the Web server with restricted permissions. 프로세스는 클라이언트 브라우저와 동일한 컨텍스트에서 시작 되지 않으며 사용자 데스크톱에 액세스할 수 없습니다.The process does not start in the same context as the client browser, and does not have access to the user desktop.

를 사용 하 여 Start 프로세스를 시작할 때마다 해당 프로세스를 닫거나 시스템 리소스가 손실 될 위험이 있습니다.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. 또는을 사용 하 여 프로세스 CloseMainWindow 를 닫습니다 Kill .Close processes using CloseMainWindow or Kill. 해당 속성을 사용 하 여 프로세스가 이미 닫혀 있는지 확인할 수 있습니다 HasExited .You can check whether a process has already been closed by using its HasExited property.

관리 되는 스레드의 아파트 상태에 대 한 참고 사항은 여기에 필요 합니다.A note about apartment states in managed threads is necessary here. UseShellExecutetrue 프로세스 구성 요소에 StartInfo 속성을 특성을 설정 하 여 애플리케이션의 스레딩 모델을 설정 했는지 확인 하십시오 [STAThread]main() 메서드.When UseShellExecute is true on the process component's StartInfo property, make sure you have set a threading model on your application by setting the attribute [STAThread] on the main() method. 그렇지 않은 경우 관리 되는 스레드는 상태에 있을 수 있으며, 상태는 상태가 될 수 있습니다 unknown MTA UseShellExecute true .Otherwise, a managed thread can be in an unknown state or put in the MTA state, the latter of which conflicts with UseShellExecute being true. 일부 메서드는 아파트 상태가이 아니어야 unknown 합니다.Some methods require that the apartment state not be unknown. 기본적으로 상태를 설정 하지 않으면 명시적으로, 애플리케이션에서 이러한 메서드를 발견 하는 경우, MTA를 설정한 후에 아파트 상태를 변경할 수 없습니다.If the state is not explicitly set, when the application encounters such a method, it defaults to MTA, and once set, the apartment state cannot be changed. 그러나 MTA 운영 체제 셸에서 스레드를 관리 하는 경우에서 예외가 throw 됩니다.However, MTA causes an exception to be thrown when the operating system shell is managing the thread.

추가 정보

적용 대상

Start()

StartInfo 구성 요소의 Process 속성으로 지정된 프로세스 리소스를 시작하거나 다시 사용하여 구성 요소에 연결합니다.Starts (or reuses) the process resource that is specified by the StartInfo property of this Process component and associates it with the component.

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

반환

Boolean

프로세스 리소스가 시작된 경우에는 true이고 기존 프로세스를 다시 사용한 경우처럼 새 프로세스 리소스가 시작되지 않은 경우에는 false입니다.true if a process resource is started; false if no new process resource is started (for example, if an existing process is reused).

예외

Process 구성 요소의 StartInfo에 파일 이름이 지정되지 않았습니다.No file name was specified in the Process component's StartInfo.

또는-or-

UseShellExecute , StartInfo 또는 trueRedirectStandardInput인 동안 RedirectStandardOutput속성의 RedirectStandardError 멤버는 true입니다.The UseShellExecute member of the StartInfo property is true while RedirectStandardInput, RedirectStandardOutput, or RedirectStandardError is true.

연결된 파일을 여는 동안 오류가 발생했습니다.There was an error in opening the associated file.

프로세스 개체가 이미 삭제되었습니다.The process object has already been disposed.

메서드는 Nano Server와 같은 셸 지원 없이 운영 체제에서 지원되지 않습니다(.NET Core에만 해당).Method not supported on operating systems without shell support such as Nano Server (.NET Core only).

예제

다음 예제에서는 클래스의 인스턴스를 사용 하 여 Process 프로세스를 시작 합니다.The following example uses an instance of the Process class to start a process.

#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

int main()
{
    Process^ myProcess = gcnew Process;

    try
    {
        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 is 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 );
    }
}
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 is 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);
            }
        }
    }
}
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 is 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

설명

이 오버 로드를 사용 하 여 프로세스 리소스를 시작 하 고 현재 Process 구성 요소와 연결 합니다.Use this overload to start a process resource and associate it with the current Process component. 반환 값은 true 새 프로세스 리소스가 시작 되었음을 나타냅니다.The return value true indicates that a new process resource was started. 속성의 멤버로 지정 된 프로세스 리소스가 FileName StartInfo 컴퓨터에서 이미 실행 중인 경우에는 추가 프로세스 리소스가 시작 되지 않습니다.If the process resource specified by the FileName member of the StartInfo property is already running on the computer, no additional process resource is started. 대신, 실행 중인 프로세스 리소스가 다시 사용 되 고 false 반환 됩니다.Instead, the running process resource is reused and false is returned.

원래 애플리케이션 설치 위치 (예를 들어, 웹 주소)를 지정 하 여 ClickOnce 애플리케이션을 시작할 수 있습니다.You can start a ClickOnce application by specifying the location (for example, a Web address) from which you originally installed the application. 하드 드라이브에 설치 된 위치를 지정 하 여 ClickOnce 애플리케이션을 시작 하지 않습니다.Do not start a ClickOnce application by specifying its installed location on your hard drive.

참고

Visual Studio를 사용 하는 경우이 메서드의 오버 로드는 Start Process 구성 요소를 디자이너에 끌어서 놓은 후 코드에 삽입 하는 오버 로드입니다.If you are using Visual Studio, this overload of the Start method is the one that you insert into your code after you drag a Process component onto the designer. 창을 사용 Properties 하 여 범주를 확장 하 StartInfo 고 속성에 적절 한 값을 씁니다 FileName .Use the Properties window to expand the StartInfo category and write the appropriate value into the FileName property. 변경 내용이 폼의 절차에 표시 됩니다 InitializeComponent .Your changes will appear in the form's InitializeComponent procedure.

의이 오버 로드 Startstatic 메서드가 아닙니다.This overload of Start is not a static method. 클래스의 인스턴스에서 호출 해야 합니다 Process .You must call it from an instance of the Process class. 를 호출 하기 전에 Start 먼저 StartInfo 이 인스턴스에 대 한 속성 정보를 지정 해야 합니다 Process .이 정보는 시작할 프로세스 리소스를 결정 하는 데 사용 됩니다.Before calling Start, you must first specify StartInfo property information for this Process instance, because that information is used to determine the process resource to start.

메서드의 다른 오버 로드는 Start static 멤버입니다.The other overloads of the Start method are static members. Process메서드의 오버 로드를 호출 하기 전에 구성 요소의 인스턴스를 만들 필요가 없습니다.You do not need to create an instance of the Process component before you call those overloads of the method. 대신 Start 클래스 자체에 대해를 호출할 수 Process 있으며 Process 프로세스가 시작 된 경우 새 구성 요소가 만들어집니다.Instead, you can call Start for the Process class itself, and a new Process component is created if the process was started. 또는 null 프로세스를 다시 사용 하는 경우이 반환 됩니다.Or, null is returned if a process was reused. 프로세스 리소스는 메서드에 의해 반환 된 새 구성 요소와 자동으로 연결 됩니다 Process Start .The process resource is automatically associated with the new Process component that is returned by the Start method.

StartInfo멤버를 사용 하 여 Run Windows 메뉴의 대화 상자 기능을 복제할 수 있습니다 Start .The StartInfo members can be used to duplicate the functionality of the Run dialog box of the Windows Start menu. 명령줄에 입력할 수 있는 모든 항목은 속성에서 적절 한 값을 설정 하 여 시작할 수 있습니다 StartInfo .Anything that can be typed into a command line can be started by setting the appropriate values in the StartInfo property. StartInfo설정 해야 하는 유일한 속성은 FileName 속성입니다.The only StartInfo property that must be set is the FileName property. FileName속성은 실행 파일 일 필요가 없습니다.The FileName property does not have to be an executable file. 확장 시스템에 설치 된 애플리케이션과 연결 된 모든 파일 형식의 수 있습니다.It can be of any file type for which the extension has been associated with an application that is installed on the system. 예를 들어 FileName 메모장과 같은 편집기와 텍스트 파일을 연결한 경우 속성의 확장명이 .txt가 될 수 있으며, Microsoft word와 같은 워드 프로세싱 도구를 사용 하 여 .doc 파일을 연결한 경우에는 확장명이 .doc가 될 수 있습니다.For example, the FileName property can have a .txt extension if you have associated text files with an editor, such as Notepad, or it can have a .doc extension if you have associated .doc files with a word processing tool, such as Microsoft Word.

명령줄에서 특정 파일 형식에 대해 수행할 작업을 지정할 수 있습니다.In the command line, you can specify actions to take for certain types of files. 예를 들어 문서를 인쇄 하거나 텍스트 파일을 편집할 수 있습니다.For example, you can print documents or edit text files. 속성의 멤버를 사용 하 여 이러한 작업을 지정 Verb StartInfo 합니다.Specify these actions using the Verb member of the StartInfo property. 다른 형식의 파일의 경우 대화 상자에서 파일을 시작할 때 명령줄 인수를 지정할 수 있습니다 Run .For other types of files, you can specify command-line arguments when you start the file from the Run dialog box. 예를 들어, 브라우저를으로 지정 하는 경우 URL을 인수로 전달할 수 있습니다 FileName .For example, you can pass a URL as an argument if you specify your browser as the FileName. 이러한 인수는 속성의 멤버에 지정할 수 있습니다 StartInfo Arguments .These arguments can be specified in the StartInfo property's Arguments member.

따옴표를 사용 하 여 시스템에 경로 변수가 선언 된 경우 해당 위치에 있는 프로세스를 시작할 때 해당 경로를 정규화 해야 합니다.If you have a path variable declared in your system using quotes, you must fully qualify that path when starting any process found in that location. 그렇지 않으면 시스템이 경로를 찾지 못합니다.Otherwise, the system will not find the path. 예를 들어 c:\mypath 가 경로에 없고 따옴표를 사용 하 여 추가 하는 경우를 path = %path%;"c:\mypath" 시작할 때에서 모든 프로세스를 정규화 해야 합니다 c:\mypath .For example, if c:\mypath is not in your path, and you add it using quotation marks: path = %path%;"c:\mypath", you must fully qualify any process in c:\mypath when starting it.

참고

ASP.NET 웹 페이지 및 서버 컨트롤 코드는 웹 서버에서 ASP.NET 작업자 프로세스의 컨텍스트에서 실행 됩니다.ASP.NET Web page and server control code executes in the context of the ASP.NET worker process on the Web server. StartASP.NET 웹 페이지 또는 서버 컨트롤에서 메서드를 사용 하는 경우 새 프로세스는 제한 된 권한으로 웹 서버에서 실행 됩니다.If you use the Start method in an ASP.NET Web page or server control, the new process executes on the Web server with restricted permissions. 프로세스는 클라이언트 브라우저와 동일한 컨텍스트에서 시작 되지 않으며 사용자 데스크톱에 액세스할 수 없습니다.The process does not start in the same context as the client browser, and does not have access to the user desktop.

를 사용 하 여 Start 프로세스를 시작할 때마다 해당 프로세스를 닫거나 시스템 리소스가 손실 될 위험이 있습니다.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. 또는을 사용 하 여 프로세스 CloseMainWindow 를 닫습니다 Kill .Close processes using CloseMainWindow or Kill. 해당 속성을 사용 하 여 프로세스가 이미 닫혀 있는지 확인할 수 있습니다 HasExited .You can check whether a process has already been closed by using its HasExited property.

관리 되는 스레드의 아파트 상태에 대 한 참고 사항은 여기에 필요 합니다.A note about apartment states in managed threads is necessary here. UseShellExecutetrue 프로세스 구성 요소에 StartInfo 속성을 특성을 설정 하 여 애플리케이션의 스레딩 모델을 설정 했는지 확인 하십시오 [STAThread]main() 메서드.When UseShellExecute is true on the process component's StartInfo property, make sure you have set a threading model on your application by setting the attribute [STAThread] on the main() method. 그렇지 않은 경우 관리 되는 스레드는 상태에 있을 수 있으며, 상태는 상태가 될 수 있습니다 unknown MTA UseShellExecute true .Otherwise, a managed thread can be in an unknown state or put in the MTA state, the latter of which conflicts with UseShellExecute being true. 일부 메서드는 아파트 상태가이 아니어야 unknown 합니다.Some methods require that the apartment state not be unknown. 기본적으로 상태를 설정 하지 않으면 명시적으로, 애플리케이션에서 이러한 메서드를 발견 하는 경우, MTA를 설정한 후에 아파트 상태를 변경할 수 없습니다.If the state is not explicitly set, when the application encounters such a method, it defaults to MTA, and once set, the apartment state cannot be changed. 그러나 MTA 운영 체제 셸에서 스레드를 관리 하는 경우에서 예외가 throw 됩니다.However, MTA causes an exception to be thrown when the operating system shell is managing the thread.

추가 정보

적용 대상

Start(String)

문서 또는 애플리케이션 파일 이름을 지정하여 프로세스 리소스를 시작하고 해당 리소스를 새 Process 구성 요소에 연결합니다.Starts a process resource by specifying the name of a document or application file and associates the resource with a new Process component.

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

매개 변수

fileName
String

프로세스에서 실행될 문서 또는 애플리케이션 파일의 이름입니다.The name of a document or application file to run in the process.

반환

Process

프로세스 리소스와 연결되거나 시작된 프로세스가 없는 경우 null에 연결되는 새 Process입니다.A new Process that is associated with the process resource, or null if no process resource is started. 같은 프로세스에서 이미 실행 중인 인스턴스와 함께 시작되는 새 프로세스는 서로 독립적인 관계입니다.Note that a new process that's started alongside already running instances of the same process will be independent from the others. 뿐만 아니라 시작 시 HasExited 속성이 이미 true로 설정되어 있는 null이 아닌 프로세스가 반환될 수 있습니다.In addition, Start may return a non-null Process with its HasExited property already set to true. 이 경우 시작된 프로세스가 자체의 기존 인스턴스를 활성화한 후 종료될 수 있습니다.In this case, the started process may have activated an existing instance of itself and then exited.

예외

연결된 파일을 열 때 오류가 발생합니다.An error occurred when opening the associated file.

또는-or-

fileName에서 지정된 파일을 찾을 수 없습니다.The file specified in the fileName could not be found.

프로세스 개체가 이미 삭제되었습니다.The process object has already been disposed.

PATH 환경 변수에 따옴표를 포함하는 문자열이 있습니다.The PATH environment variable has a string containing quotes.

예제

다음 예에서는 먼저 Internet Explorer의 인스턴스를 생성 하 고 브라우저에 즐겨찾기 폴더의 내용을 표시 합니다.The following example first spawns an instance of Internet Explorer and displays the contents of the Favorites folder in the browser. 그런 다음 Internet Explorer의 다른 인스턴스를 시작 하 고 특정 페이지 또는 사이트를 표시 합니다.It then starts some other instances of Internet Explorer and displays some specific pages or sites. 마지막으로, 특정 사이트로 이동 하는 동안 창이 최소화 되는 Internet Explorer를 시작 합니다.Finally it starts Internet Explorer with the window being minimized while navigating to a specific site.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

// 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()
{
    // 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");
}

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
    startInfo->WindowStyle = ProcessWindowStyle::Minimized;
    Process::Start(startInfo);
    startInfo->Arguments = "www.northwindtraders.com";
    Process::Start(startInfo);
}

int main()
{
    // Get the path that stores favorite links.
    String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
    OpenApplication(myFavoritesPath);
    OpenWithArguments();
    OpenWithStartInfo();
}
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();
        }
    }
}
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

설명

이 오버 로드를 사용 하 여 파일 이름을 지정 하 여 프로세스 리소스를 시작 합니다.Use this overload to start a process resource by specifying its file name. 오버 로드는 리소스를 새 개체와 연결 합니다 Process .The overload associates the resource with a new Process object.

참고

시작할 실행 파일의 주소가 URL 이면 프로세스가 시작 되지 않고 null 반환 됩니다.If the address of the executable file to start is a URL, the process is not started and null is returned.

이 오버 로드를 사용 하면 먼저 새 인스턴스를 만들지 않고 프로세스를 시작할 수 있습니다 Process .This overload lets you start a process without first creating a new Process instance. 오버 로드는 새 인스턴스를 만들고 Process , FileName 속성의 멤버를 설정 하 고, StartInfo 인스턴스에 대해를 호출 하 Start 는 명시적 단계에 대 한 대안입니다 Process .The overload is an alternative to the explicit steps of creating a new Process instance, setting the FileName member of the StartInfo property, and calling Start for the Process instance.

설정 하 여 ClickOnce 애플리케이션을 시작할 수는 fileName 매개 변수는 원래 애플리케이션을 설치한 위치 (예를 들어, 웹 주소).You can start a ClickOnce application by setting the fileName parameter to the location (for example, a Web address) from which you originally installed the application. 하드 드라이브에 설치 된 위치를 지정 하 여 ClickOnce 애플리케이션을 시작 하지 않습니다.Do not start a ClickOnce application by specifying its installed location on your hard drive.

파일 이름을 지정 하 여 프로세스를 시작 하는 것은 Run Windows 메뉴의 대화 상자에 정보를 입력 하는 것과 비슷합니다 Start .Starting a process by specifying its file name is similar to typing the information in the Run dialog box of the Windows Start menu. 따라서 파일 이름은 실행 파일을 나타낼 필요가 없습니다.Therefore, the file name does not need to represent an executable file. 확장에 연결 된 시스템에 설치 된 애플리케이션 파일 형식의 수 있습니다.It can be of any file type for which the extension has been associated with an application installed on the system. 예를 들어 메모장과 같은 편집기와 관련 된 텍스트 파일이 있는 경우 파일 이름에 .txt 확장명을 사용할 수 있습니다. 또는 Microsoft Word와 같은 워드 프로세싱 도구를 사용 하 여 .doc 파일을 연결한 경우에는 .doc를 사용할 수 있습니다.For example the file name can have a .txt extension if you have associated text files with an editor, such as Notepad, or it can have a .doc if you have associated .doc files with a word processing tool, such as Microsoft Word. 마찬가지로, Run 대화 상자에서 .exe 확장명을 사용 하거나 사용 하지 않고 실행 파일 이름을 사용할 수 있는 것과 같은 방식으로 .exe 확장명은 매개 변수에서 선택 사항입니다. fileNameSimilarly, in the same way that the Run dialog box can accept an executable file name with or without the .exe extension, the .exe extension is optional in the fileName parameter. 예를 들어 fileName 매개 변수를 "Notepad.exe" 또는 "Notepad"로 설정할 수 있습니다.For example, you can set the fileName parameter to either "Notepad.exe" or "Notepad".

이 오버 로드는 프로세스에 대 한 명령줄 인수를 허용 하지 않습니다.This overload does not allow command-line arguments for the process. 프로세스에 대 한 명령줄 인수를 하나 이상 지정 해야 하는 경우 Process.Start(ProcessStartInfo) 또는 오버 로드를 사용 Process.Start(String, String) 합니다.If you need to specify one or more command-line arguments for the process, use the Process.Start(ProcessStartInfo) or Process.Start(String, String) overloads.

다른 오버 로드와 달리 Start 매개 변수를 포함 하지 않는의 오버 로드는 static 멤버가 아닙니다.Unlike the other overloads, the overload of Start that has no parameters is not a static member. 인스턴스를 이미 만들고 Process 지정 된 시작 정보 (파일 이름 포함)를 지정한 다음 프로세스 리소스를 시작 하 여 기존 인스턴스와 연결 하려는 경우이 오버 로드를 사용 Process 합니다.Use that overload when you have already created a Process instance and specified start information (including the file name), and you want to start a process resource and associate it with the existing Process instance. static Process 기존 구성 요소에 대 한 프로세스를 시작 하는 대신 새 구성 요소를 만들려는 경우 오버 로드 중 하나를 사용 합니다.Use one of the static overloads when you want to create a new Process component rather than start a process for an existing component. 이 오버 로드와 매개 변수를 포함 하지 않는 오버 로드를 사용 하면 시작할 프로세스 리소스의 파일 이름을 지정할 수 있습니다.Both this overload and the overload that has no parameters allow you to specify the file name of the process resource to start.

따옴표를 사용 하 여 시스템에 경로 변수가 선언 된 경우 해당 위치에 있는 프로세스를 시작할 때 해당 경로를 정규화 해야 합니다.If you have a path variable declared in your system using quotes, you must fully qualify that path when starting any process found in that location. 그렇지 않으면 시스템이 경로를 찾지 못합니다.Otherwise, the system will not find the path. 예를 들어 c:\mypath 가 경로에 없고 따옴표를 사용 하 여 추가 하는 경우를 path = %path%;"c:\mypath" 시작할 때에서 모든 프로세스를 정규화 해야 합니다 c:\mypath .For example, if c:\mypath is not in your path, and you add it using quotation marks: path = %path%;"c:\mypath", you must fully qualify any process in c:\mypath when starting it.

참고

ASP.NET 웹 페이지 및 서버 컨트롤 코드는 웹 서버에서 ASP.NET 작업자 프로세스의 컨텍스트에서 실행 됩니다.ASP.NET Web page and server control code executes in the context of the ASP.NET worker process on the Web server. StartASP.NET 웹 페이지 또는 서버 컨트롤에서 메서드를 사용 하는 경우 새 프로세스는 제한 된 권한으로 웹 서버에서 실행 됩니다.If you use the Start method in an ASP.NET Web page or server control, the new process executes on the Web server with restricted permissions. 프로세스는 클라이언트 브라우저와 동일한 컨텍스트에서 시작 되지 않으며 사용자 데스크톱에 액세스할 수 없습니다.The process does not start in the same context as the client browser, and does not have access to the user desktop.

를 사용 하 여 Start 프로세스를 시작할 때마다 해당 프로세스를 닫거나 시스템 리소스가 손실 될 위험이 있습니다.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. 또는을 사용 하 여 프로세스 CloseMainWindow 를 닫습니다 Kill .Close processes using CloseMainWindow or Kill. 해당 속성을 사용 하 여 프로세스가 이미 닫혀 있는지 확인할 수 있습니다 HasExited .You can check whether a process has already been closed by using its HasExited property.

관리 되는 스레드의 아파트 상태에 대 한 참고 사항은 여기에 필요 합니다.A note about apartment states in managed threads is necessary here. UseShellExecutetrue 프로세스 구성 요소에 StartInfo 속성을 특성을 설정 하 여 애플리케이션의 스레딩 모델을 설정 했는지 확인 하십시오 [STAThread]main() 메서드.When UseShellExecute is true on the process component's StartInfo property, make sure you have set a threading model on your application by setting the attribute [STAThread] on the main() method. 그렇지 않은 경우 관리 되는 스레드는 상태에 있을 수 있으며, 상태는 상태가 될 수 있습니다 unknown MTA UseShellExecute true .Otherwise, a managed thread can be in an unknown state or put in the MTA state, the latter of which conflicts with UseShellExecute being true. 일부 메서드는 아파트 상태가이 아니어야 unknown 합니다.Some methods require that the apartment state not be unknown. 기본적으로 상태를 설정 하지 않으면 명시적으로, 애플리케이션에서 이러한 메서드를 발견 하는 경우, MTA를 설정한 후에 아파트 상태를 변경할 수 없습니다.If the state is not explicitly set, when the application encounters such a method, it defaults to MTA, and once set, the apartment state cannot be changed. 그러나 MTA 운영 체제 셸에서 스레드를 관리 하는 경우에서 예외가 throw 됩니다.However, MTA causes an exception to be thrown when the operating system shell is managing the thread.

추가 정보

적용 대상

Start(ProcessStartInfo)

시작할 프로세스의 파일 이름 같은 프로세스 시작 정보가 포함된 매개 변수에 의해 지정된 프로세스 리소스를 시작하고 해당 리소스를 새 Process 구성 요소에 연결합니다.Starts the process resource that is specified by the parameter containing process start information (for example, the file name of the process to start) and associates the resource with a new Process component.

public:
 static System::Diagnostics::Process ^ Start(System::Diagnostics::ProcessStartInfo ^ startInfo);
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

매개 변수

startInfo
ProcessStartInfo

파일 이름 및 모든 명령줄 인수를 포함하여 프로세스를 시작하는 데 사용되는 정보가 들어 있는 ProcessStartInfo입니다.The ProcessStartInfo that contains the information that is used to start the process, including the file name and any command-line arguments.

반환

Process

프로세스 리소스와 연결되거나 시작된 프로세스가 없는 경우 null에 연결되는 새 Process입니다.A new Process that is associated with the process resource, or null if no process resource is started. 같은 프로세스에서 이미 실행 중인 인스턴스와 함께 시작되는 새 프로세스는 서로 독립적인 관계입니다.Note that a new process that's started alongside already running instances of the same process will be independent from the others. 뿐만 아니라 시작 시 HasExited 속성이 이미 true로 설정되어 있는 null이 아닌 프로세스가 반환될 수 있습니다.In addition, Start may return a non-null Process with its HasExited property already set to true. 이 경우 시작된 프로세스가 자체의 기존 인스턴스를 활성화한 후 종료될 수 있습니다.In this case, the started process may have activated an existing instance of itself and then exited.

예외

startInfo 매개 변수의 FileName 속성에 파일 이름이 지정되지 않았습니다.No file name was specified in the startInfo parameter's FileName property.

또는-or- startInfo 매개 변수의 UseShellExecute 속성이 trueRedirectStandardInput이고, RedirectStandardOutput 또는 RedirectStandardError 속성 또한 true입니다.The UseShellExecute property of the startInfo parameter is true and the RedirectStandardInput, RedirectStandardOutput, or RedirectStandardError property is also true.

또는-or- startInfo 매개 변수의 UseShellExecute 속성이 true이고 UserName 속성이 null 또는 비어 있거나 Password 속성이 null이 아닙니다.The UseShellExecute property of the startInfo parameter is true and the UserName property is not null or empty or the Password property is not null.

startInfo 매개 변수가 null인 경우The startInfo parameter is null.

프로세스 개체가 이미 삭제되었습니다.The process object has already been disposed.

연결된 파일을 열 때 오류가 발생합니다.An error occurred when opening the associated file.

또는-or- startInfo 매개 변수의 FileName 속성에 지정된 파일을 찾을 수 없습니다.The file specified in the startInfo parameter's FileName property could not be found.

또는-or- 인수의 길이와 프로세스에 대한 전체 경로 길이를 합하면 2080을 초과합니다.The sum of the length of the arguments and the length of the full path to the process exceeds 2080. 이 예외와 관련된 오류 메시지는 다음 중 하나일 수 있습니다. "시스템 호출에 전달된 데이터 영역이 너무 작습니다."The error message associated with this exception can be one of the following: "The data area passed to a system call is too small." 또는 “액세스가 거부되었습니다.”or "Access is denied."

메서드는 Nano Server와 같은 셸 지원 없이 운영 체제에서 지원되지 않습니다(.NET Core에만 해당).Method not supported on operating systems without shell support such as Nano Server (.NET Core only).

예제

다음 예에서는 먼저 Internet Explorer의 인스턴스를 생성 하 고 브라우저에 즐겨찾기 폴더의 내용을 표시 합니다.The following example first spawns an instance of Internet Explorer and displays the contents of the Favorites folder in the browser. 그런 다음 Internet Explorer의 다른 인스턴스를 시작 하 고 특정 페이지 또는 사이트를 표시 합니다.It then starts some other instances of Internet Explorer and displays some specific pages or sites. 마지막으로, 특정 사이트로 이동 하는 동안 창이 최소화 되는 Internet Explorer를 시작 합니다.Finally it starts Internet Explorer with the window being minimized while navigating to a specific site.

이 메서드의 다른 용도에 대 한 추가 예제는 클래스의 개별 속성을 참조 하세요 ProcessStartInfo .For additional examples of other uses of this method, refer to the individual properties of the ProcessStartInfo class.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

// 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()
{
    // 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");
}

// Uses the ProcessStartInfo class to start new processes,
// both in a minimized mode.
void OpenWithStartInfo()
{
    ProcessStartInfo^ startInfo = gcnew ProcessStartInfo("IExplore.exe");
    startInfo->WindowStyle = ProcessWindowStyle::Minimized;
    Process::Start(startInfo);
    startInfo->Arguments = "www.northwindtraders.com";
    Process::Start(startInfo);
}

int main()
{
    // Get the path that stores favorite links.
    String^ myFavoritesPath = Environment::GetFolderPath(Environment::SpecialFolder::Favorites);
    OpenApplication(myFavoritesPath);
    OpenWithArguments();
    OpenWithStartInfo();
}
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();
        }
    }
}
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

설명

인스턴스를 지정 하 여 프로세스 리소스를 시작 하려면이 오버 로드를 사용 ProcessStartInfo 합니다.Use this overload to start a process resource by specifying a ProcessStartInfo instance. 오버 로드는 리소스를 새 개체와 연결 합니다 Process .The overload associates the resource with a new Process object.

참고

시작할 실행 파일의 주소가 URL 이면 프로세스가 시작 되지 않고 null 반환 됩니다.If the address of the executable file to start is a URL, the process is not started and null is returned.

이 오버 로드를 사용 하면 먼저 새 인스턴스를 만들지 않고 프로세스를 시작할 수 있습니다 Process .This overload lets you start a process without first creating a new Process instance. 매개 변수와 함께이 오버 로드를 사용 하는 ProcessStartInfo 것은 새 인스턴스를 만들고 Process 해당 속성을 설정 하 StartInfo 고 인스턴스에 대해를 호출 하는 명시적 단계에 대 한 대안입니다 Start Process .Using this overload with a ProcessStartInfo parameter is an alternative to the explicit steps of creating a new Process instance, setting its StartInfo properties, and calling Start for the Process instance.

인스턴스를 ProcessStartInfo 매개 변수로 사용 하면 Start 프로세스를 시작 하기 위해 호출에 전달 되는 항목에 대 한 대부분의 제어를 사용 하 여를 호출할 수 있습니다.Using a ProcessStartInfo instance as the parameter lets you call Start with the most control over what is passed into the call to start the process. 파일 이름 또는 파일 이름 및 인수만 전달 해야 하는 경우에는 새 인스턴스를 만들 필요가 없습니다 ProcessStartInfo .If you need to pass only a file name or a file name and arguments, it is not necessary to create a new ProcessStartInfo instance, although that is an option. Process.StartInfo설정 해야 하는 유일한 속성은 FileName 속성입니다.The only Process.StartInfo property that must be set is the FileName property. FileName속성은 실행 파일을 나타낼 필요가 없습니다.The FileName property does not need to represent an executable file. 확장 시스템에 설치 된 애플리케이션과 연결 된 모든 파일 형식의 수 있습니다.It can be of any file type for which the extension has been associated with an application that is installed on the system. 예를 들어 FileName 메모장과 같은 편집기와 텍스트 파일을 연결한 경우 속성의 확장명이 .txt가 될 수 있으며, Microsoft word와 같은 워드 프로세싱 도구를 사용 하 여 .doc 파일을 연결한 경우에는 확장명이 .doc가 될 수 있습니다.For example, the FileName property can have a .txt extension if you have associated text files with an editor, such as Notepad, or it can have a .doc extension if you have associated .doc files with a word processing tool, such as Microsoft Word.

원래 애플리케이션 설치 위치 (예를 들어, 웹 주소)를 지정 하 여 ClickOnce 애플리케이션을 시작할 수 있습니다.You can start a ClickOnce application by specifying the location (for example, a Web address) from which you originally installed the application. 하드 드라이브에 설치 된 위치를 지정 하 여 ClickOnce 애플리케이션을 시작 하지 않습니다.Do not start a ClickOnce application by specifying its installed location on your hard drive.

ProcessStartInfo.UserName ProcessStartInfo.Password 인스턴스의 및 속성이 StartInfo 설정 되어 있으면 관리 되지 않는 CreateProcessWithLogonW 함수가 호출 됩니다 .이 함수는 ProcessStartInfo.CreateNoWindow 속성 값이 true 이거나 ProcessStartInfo.WindowStyle 속성 값이 인 경우에도 새 창에서 프로세스를 시작 합니다 ProcessWindowStyle.Hidden .If the ProcessStartInfo.UserName and ProcessStartInfo.Password properties of the StartInfo instance are set, the unmanaged CreateProcessWithLogonW function is called, which starts the process in a new window even if the ProcessStartInfo.CreateNoWindow property value is true or the ProcessStartInfo.WindowStyle property value is ProcessWindowStyle.Hidden. ProcessStartInfo.Domain속성이 인 경우 null ProcessStartInfo.UserName 속성은 UPN 형식 이어야 합니다. 사용자 @ DNS_domain_name 입니다.If the ProcessStartInfo.Domain property is null, the ProcessStartInfo.UserName property must be in UPN format, user@DNS_domain_name.

다른 오버 로드와 달리 Start 매개 변수를 포함 하지 않는의 오버 로드는 static 멤버가 아닙니다.Unlike the other overloads, the overload of Start that has no parameters is not a static member. 인스턴스를 이미 만들고 Process 지정 된 시작 정보 (파일 이름 포함)를 지정한 다음 프로세스 리소스를 시작 하 여 기존 인스턴스와 연결 하려는 경우이 오버 로드를 사용 Process 합니다.Use that overload when you have already created a Process instance and specified start information (including the file name), and you want to start a process resource and associate it with the existing Process instance. static Process 기존 구성 요소에 대 한 프로세스를 시작 하는 대신 새 구성 요소를 만들려는 경우 오버 로드 중 하나를 사용 합니다.Use one of the static overloads when you want to create a new Process component rather than start a process for an existing component. 이 오버 로드와 매개 변수를 포함 하지 않는 오버 로드를 사용 하면 인스턴스를 사용 하 여 프로세스 리소스에 대 한 시작 정보를 지정할 수 있습니다 ProcessStartInfo .Both this overload and the overload that has no parameters allow you to specify the start information for the process resource by using a ProcessStartInfo instance.

따옴표를 사용 하 여 시스템에 경로 변수가 선언 된 경우 해당 위치에 있는 프로세스를 시작할 때 해당 경로를 정규화 해야 합니다.If you have a path variable declared in your system using quotes, you must fully qualify that path when starting any process found in that location. 그렇지 않으면 시스템이 경로를 찾지 못합니다.Otherwise, the system will not find the path. 예를 들어 c:\mypath 가 경로에 없고 따옴표를 사용 하 여 추가 하는 경우를 path = %path%;"c:\mypath" 시작할 때에서 모든 프로세스를 정규화 해야 합니다 c:\mypath .For example, if c:\mypath is not in your path, and you add it using quotation marks: path = %path%;"c:\mypath", you must fully qualify any process in c:\mypath when starting it.

참고

ASP.NET 웹 페이지 및 서버 컨트롤 코드는 웹 서버에서 ASP.NET 작업자 프로세스의 컨텍스트에서 실행 됩니다.ASP.NET Web page and server control code executes in the context of the ASP.NET worker process on the Web server. StartASP.NET 웹 페이지 또는 서버 컨트롤에서 메서드를 사용 하는 경우 새 프로세스는 제한 된 권한으로 웹 서버에서 실행 됩니다.If you use the Start method in an ASP.NET Web page or server control, the new process executes on the Web server with restricted permissions. 프로세스는 클라이언트 브라우저와 동일한 컨텍스트에서 시작 되지 않으며 사용자 데스크톱에 액세스할 수 없습니다.The process does not start in the same context as the client browser, and does not have access to the user desktop.

를 사용 하 여 Start 프로세스를 시작할 때마다 해당 프로세스를 닫거나 시스템 리소스가 손실 될 위험이 있습니다.Whenever you use Start to start a process, you might need to close it or you risk losing system resources. 또는을 사용 하 여 프로세스 CloseMainWindow 를 닫습니다 Kill .Close processes using CloseMainWindow or Kill. 해당 속성을 사용 하 여 프로세스가 이미 닫혀 있는지 확인할 수 있습니다 HasExited .You can check whether a process has already been closed by using its HasExited property.

관리 되는 스레드의 아파트 상태에 대 한 참고 사항은 여기에 필요 합니다.A note about apartment states in managed threads is necessary here. UseShellExecute 됩니다 truestartInfo 매개 변수를 특성을 설정 하 여 애플리케이션의 스레딩 모델을 설정 했는지 확인 [STAThread]main() 메서드.When UseShellExecute is true on the startInfo parameter, make sure you have set a threading model on your application by setting the attribute [STAThread] on the main() method. 그렇지 않은 경우 관리 되는 스레드는 상태에 있을 수 있으며, 상태는 상태가 될 수 있습니다 unknown MTA UseShellExecute true .Otherwise, a managed thread can be in an unknown state or put in the MTA state, the latter of which conflicts with UseShellExecute being true. 일부 메서드는 아파트 상태가이 아니어야 unknown 합니다.Some methods require that the apartment state not be unknown. 기본적으로 상태를 설정 하지 않으면 명시적으로, 애플리케이션에서 이러한 메서드를 발견 하는 경우, MTA를 설정한 후에 아파트 상태를 변경할 수 없습니다.If the state is not explicitly set, when the application encounters such a method, it defaults to MTA, and once set, the apartment state cannot be changed. 그러나 MTA 운영 체제 셸에서 스레드를 관리 하는 경우에서 예외가 throw 됩니다.However, MTA causes an exception to be thrown when the operating system shell is managing the thread.

추가 정보

적용 대상

Start(String, IEnumerable<String>)

애플리케이션 이름 및 명령줄 인수 집합을 지정하여 프로세스 리소스를 시작합니다.Starts a process resource by specifying the name of an application and a set of command line arguments.

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

매개 변수

fileName
String

프로세스에서 실행될 문서 또는 애플리케이션 파일의 이름입니다.The name of a document or application file to run in the process.

arguments
IEnumerable<String>

프로세스를 시작할 때 전달할 명령줄 인수입니다.The command-line arguments to pass when starting the process.

반환

Process

프로세스 리소스와 연결되거나 시작된 프로세스가 없는 경우 null에 연결되는 새 Process입니다.A new Process that is associated with the process resource, or null if no process resource is started.

설명

필요한 경우 각 인수는 자동으로 이스케이프 됩니다.Each argument will be escaped automatically if required.

적용 대상